مشکل علامت سئوال به جای کاراکتر فارسی و ذخیره تاریخ شمسی
سلام ، من با سی شارپ برنامه ای نوشتم که وقتی فارسی نویسی میکنم به صورت علامت سوال نشون میده و در بانک هم به صورت علامت سوال ذخیره میشه چطور میتونم این مشکل رو حل کنم. سوال دوم : چند تا تکس باکس دارم و یه گریدویو مشکل اینجاس که وقتی یه رکورد درست میکنم تاریخ رو که وارد میکنم خطا میده که نمیتونه این نوع رو ذخیره کنه ولی من تاریخ رو از نوع رشته ای انتخاب کردم ؟در سایر فرم های دیگرم دقیقا به همین صورته ولی خطایی نداره فقط در همین قسمته و اینکه اطلاعات در گرید ویو و بانک ثبت میشه ولی در گرید ویو نمایش نمیده و وقتی از گرید ویو پروویو میگرم اطلاعات رو نمایش میده در حالت عادی نمایش نمیده؟
ممنون
5 پاسخ
آها فکر کنم مشکلت رو فهمیدم. فکر کنم این مشکل از سمت پایگاه دادت نیست بلکه از سمت برنامته. توی گرید ویو احتمالا ستونی رو که برا نمایش تاریخ گذاشتی، از نوع DateTime هستش. به هنگام نمایش اطلاعات اتفاقی که می افته اینه که فیلد گرید ویو که باید مقدارش از نوع DateTime باشه می خواد خودشو به یه مقدار رشته ای Bind کنه، در نتیجه ناسازگاری نوع اتفاق می افته و ارور می ده.
تحت ویندوز برنامه نویسی می کنی یا تحت وب؟
نحوه تعریف جدولت توی پایگاه داده به علاوه ی قطعه کدی که برا وارد کردن و نمایش اطلاعات توی گرید ویو استفاده می کنی رو بزار راحت تر بشه فهمید که مشکل از کجاست
سلام تحت ویندوز و اینکه اون ستوم گریدویو هم نگاه کردم اونم رشته ای بود مشکلی نداشت.
private void button1_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(); con.ConnectionString = @"Server=REZA-PC\REZA;Initial Catalog=a;Trusted_Connection=True"; con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "Insert Into naghdid(name,mablagh,tarikh,bedehkar,bestankar)" + "VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "')"; cmd.ExecuteNonQuery(); MessageBox.Show("added successfully"); textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; this.naghdidTableAdapter1.Fill(this.aDataSet48.naghdid); con.Close(); }
برای رفع مشکل اول باید collation دیتابیست رو به Persian__CI__AS تغییر بدی تا بتونی رشته هایی که به فارسی نوشته اند رو توی دیتابیس ذخیره کنی.
برای مشکل دوم اگه تاریخ رو به صورت رشته ای انتخاب کردی که در حالت کلی نباید مشکی داشته باشی. چون صرفا داری یه رشته رو درون پایگاه ذخیره میی کنی. برا تاریخ لینک زیر می تونه کمکت کنه
سلام.
بابت پاسخ ها ممنون ولی من همونطوری که گفتم در مورد دوم تاریخ رو به صورت رشته ای انتخاب کردم ولی هنگامی که وارد مینم خطای String was not recognized as a valid DateTime.Couldn't store <> in tarikh Column داده میشه.توی بانک ثبت میشه مشکلی نداره فقط مشکل اینجاس که این خطا رو میده و اجازه نمایش رکوردها رو هم در گریدویو نمیده .
برای تاریخ به اینجا مراجعه کنید : لینک