PDA

View Full Version : سوال: مشکل در ارسال اطلاعات به پایگاه داده توسط combobox



hadimtn
شنبه 05 اردیبهشت 1394, 22:56 عصر
ارسال اطلاعات توسط combobox به چه شکل انجام میشه ؟!
کد Command مربوط به TextBox ها رو به شکل زیر نوشتم:

private void add_button_Click(object sender, EventArgs e) {
string _Name = txt1.Text;
string _Family = txt2.Text;
var db = new LinqDataClassesDataContext();
LinqTable tb = new LinqTable()
{
Name = _Name,
Family_Name = _Family
};


db.LinqTables.InsertOnSubmit(tb);
db.SubmitChanges();
dataGridView1.DataSource = db.LinqTables;
MessageBox.Show("Done!!!","Result");
}
که درست عمل میکنه! ولی کد مربوط به Command دوم که برای combobox هاست رو نمیتونم بنویسم، به این شکل نوشتم که کار نمیکنه:

private void button2_Click(object sender, EventArgs e) {
string _Name = comboBox1.SelectedText;
string _Family = comboBox2.SelectedText;
var db = new LinqDataClassesDataContext();
LinqTable tb = new LinqTable()
{
Name = _Name,
Family_Name = _Family
};


db.LinqTables.InsertOnSubmit(tb);
db.SubmitChanges();
dataGridView1.DataSource = db.LinqTables;
MessageBox.Show("Done!!!", "Result");
}

لطفاً راهنمایی کنین. ارسال اطلاعات چه جوری باید انجام بشه ؟!

(( نوع داده توی پایگاه داده برای همه ی موارد nvarchar(50) در نظر گرفته شده ))

hadimtn
یک شنبه 06 اردیبهشت 1394, 13:14 عصر
پیشاپیش از پاسخگویی احتمالی دوستان تشکر میکنم، مشکل حل شد.
اگر کسی به این مشکل برخورد اینجوری حل میشه:

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


String or binary data woud be truncated
statement has been terminated


که با تغییر Data Type از nvarchar(50) به nvarchar(MAX) مشکل حل میشه. فقط ممکنه اطلاعات فارسی شما به صورت علامت سوال (؟) ذخیره بشن که برای رفع این مشکل باید به شکل زیر عمل کرد:

*


قدم اول : نوع فیلدی که اطلاعات فارسی رو میخواهید در آن ذخیره کنید حتما میبایست از نوع nvarchar باشد .
قدم دوم : Collation دیتابیس شما میبایست Arabic_CI_AI باشد ، برای تغییر آن یکی از دو روش زیر را دنبال کنید :

1- اگر به Microsoft SQL Server Management دسترسی دارید :
-
Microsoft SQL Server Management را باز کنید .


- Login کنید .


-
روی دیتابیس مورد نظرتون کلیک سمت راست کنید و گزینه Properties رو انتخاب کنید .
- به صفحه Options بروید ( سمت چپ صفحه )
- در قسمت Collation گزینه Arabic_CI_AI را انتخاب کنید و دکمه OK رو بزنید

منبع: http://www.greendeveloper.ir
*
و کد:

private void button2_Click(object sender, EventArgs e)
{
string _Name = comboBox1.SelectedItem.ToString();
string _Family = comboBox2.SelectedItem.ToString();
var db = new LinqDataClassesDataContext();
LinqTable tb = new LinqTable()
{
Name = _Name,
Family_Name = _Family
};


db.LinqTables.InsertOnSubmit(tb);
db.SubmitChanges();
dataGridView1.DataSource = db.LinqTables;
MessageBox.Show("Done!!!", "Result");
}