PDA

View Full Version : سوال: خطای ورود داده ی فارسی در SQL server?



m.h.movahedi
شنبه 16 بهمن 1389, 19:26 عصر
سلام دوستان من یه جدول دارم که ورود داده ی فارسی رو قبول نمیکنه در ضمن از نوع nvarchar()استفاده کردم .در هنگام ورود داده ی فارسی خطای عجیب Invalid culm name رو میده ولی با انگلیسی خطایی نمی ده.
من کاملا" گیج شدم:عصبانی++::متفکر: کسی نمی تونه کمک کنه؟؟!!

farashah_jalal
شنبه 16 بهمن 1389, 20:32 عصر
سلام
خطای که می ده رو کامل بذار .
زمانی که database رو می سازی از نوع arbic یا persian قرار دادی.؟؟
یا مشکل از دستور insert که نوشتی هست .

Reza_Yarahmadi
شنبه 16 بهمن 1389, 20:37 عصر
دوست عزیز Invalid Column Name ربطی به داده های ورودی شما نداره ، دستوری که ایجاد میکنید مشکل داره.
شما احتمالا دستور SQL رو در برنامه و بدون استفاده از پارامتر میسازید که دچار این مشکل میشید.
دستوری که برای این کار نوشتید رو اینجا بذارید تا بهتر بشه کمکتون کرد.

m.h.movahedi
یک شنبه 17 بهمن 1389, 10:58 صبح
سلام دوستان

داره برای انگلیسی هم خطا میدا و فقط عدد قبول میکنه
دستورات:



string baresi_string ="select * from REZERV where HaghighiORhoghoghi=" + tab4_comboBox1.Text +
" AND Name=" + tab4_textbox_name.Text + " AND NumberOFmORpORgh=" + tab4_textBox_shomare.Text +
" AND Cuntry=" + tab4_textBox_meliat.Text + " AND Enter=" + date1;

DataSet ds = newDataSet();
SqlDataAdapter da = newSqlDataAdapter();
SqlConnection con = newSqlConnection("Data Source=.\\SQLExpress;Integrated Security=true;"
+ "database=HOTEL");
SqlCommand cmd = newSqlCommand();
ds.Clear();
da.SelectCommand = newSqlCommand();
da.SelectCommand.CommandText = baresi_string;
da.SelectCommand.Connection = con;
con.Open();
da.Fill(ds, "table1");
//تصحیح شود
con.Close();



خطادر( "da.fill(ds,"table1 رخ میده
متن خطا:


{"Invalid column name 'حقیقی'.\r\nInvalid column name نام'.\r\nInvalid column name 'ایران'."}

Reza_Yarahmadi
یک شنبه 17 بهمن 1389, 11:06 صبح
كدتون رو بصورت زير تغيير بديد

string baresi_string ="select * from REZERV where HaghighiORhoghoghi='" + tab4_comboBox1.Text +
"' AND Name='" + tab4_textbox_name.Text + "' AND NumberOFmORpORgh='" + tab4_textBox_shomare.Text +
"' AND Cuntry='" + tab4_textBox_meliat.Text + "' AND Enter='" + date1 + "'";

فيلدهاي كه مقدار رشته اي (String) مييگيرند بايد قبل و بعد مقدارشون تك كتيشن (') باشه.
سعي كنيد به اين صورت دستور SQL ننويسيد و براي مقدارها از پارامتر استفاده كنيد. (نمونه هاي زيادي در اين زمينه توي سايت وجود داره)

cjNet
یک شنبه 17 بهمن 1389, 17:00 عصر
سلام .
برای پارامترهات از کلاس SqlParameter استفاده کن . با استفاده از این کلاس خیلی از این مشکلات از بین میره ...

یه سرچی تو اینترنت یا همین سایت یا MSDN کنی مطالب خوبی دستگیرت میشه @