PDA

View Full Version : سوال: مهم و فوری ذخیره مقدار coboBoxدرپایگاه sql قتی کلیذ خارجیست



sobijoon
جمعه 30 بهمن 1388, 02:21 صبح
دوستان سلام من در پایگاه داده جدول شهر( id,tozih) وجدول عضو(name,family.shahrID ) دارم shahrID گلید خارجی در عضو است.حال میخواهم وقتی یک ردیف به جدول بیفزایم باید id جدول شهر در shahrID جدول عضو بشیند
shahrID=int
id=int
tozih=nvarchar
وقتی ک های زیررا وارد میکنم این پیغام رامیدهد!
Conversion failed when converting the nvarchar value 'id' to data type int.
مشکل کجاست؟؟
[LTR_INLINE][LTR_INLINE]
[/private void button1_Click(object sender, EventArgs e)
{

SqlConnection objConnection = new SqlConnection("Data Source=SAJAD-PC;Initial Catalog=helalll.bak;Integrated Security=True");
SqlCommand objCommand = new SqlCommand();
objCommand.Connection = objConnection;
objCommand.CommandText = "INSERT INTO ozve " +
"(name,family,shahrID)" +
"VALUES(@name,@family,@shahrID)";

objCommand.Parameters.AddWithValue("@morabi", textBox1.Text);
objCommand.Parameters.AddWithValue("@daneshnum", textBox2.Text);
objCommand.Parameters.AddWithValue("@zabanID",comboBox1.DisplayMember);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();
MessageBox.Show("عملیات ثبت با موفقیت انجام شد");}
private void Form2_Load(object sender, EventArgs e)
{
conn.ConnectionString= "Data Source=SAJAD-PC;Initial Catalog=helalll.bak;Integrated Security=True";
//cod_zaban
conn_str = "SELECT * FROM shahr";
da = new SqlDataAdapter(conn_str, conn);
ds = new DataSet();
conn.Open();
da.Fill(ds, "shahr");
conn.Close();
comboBox1.DataSource = ds.Tables["shahr"];

comboBox1.DisplayMember = "id";
comboBox1.ValueMember = "id";}
خواهش میکنم 
LTR_INLINE][/LTR_INLINE

ژیار رحیمی
جمعه 30 بهمن 1388, 03:20 صبح
سلام دوست گرامی. پیغامی که به شما میدهد از تبدیل نوع nvachar به int هست.شما چون نوع shahrID رو از نوع int در جدول تعریف کردی باید Textbox یا comboBox ی که نام شهر را انتخاب میکنی کد مربوط به شهر است که یه عدد میباشد در فیلد متناظر آن ریخته شود.


objCommand.CommandText = "INSERT INTO ozve " +
"(name,family,shahrID)" +
"VALUES(@name,@family,@shahrID)";

objCommand.Parameters.AddWithValue("@name", textBox1.Text);
objCommand.Parameters.AddWithValue("@family", textBox2.Text);
(objCommand.Parameters.AddWithValue("@shahrID",comboBox1.SelectedIndex

ژیار رحیمی
جمعه 30 بهمن 1388, 03:27 صبح
اگر مشکل حل نشد بگو تا برات یه مثال کامل برات بگذارم

sobijoon
جمعه 30 بهمن 1388, 04:44 صبح
مرسی:بوس:
ولی چرا select.index؟؟؟؟
آیاهمون ID جدول shahr منه که تو valueMember وcombBoxم گذاشتم؟؟

ژیار رحیمی
جمعه 30 بهمن 1388, 17:47 عصر
بله همان ID شهر هست.البته شما برای راحتی کار ComboBox رو به جدول شهر و فیلد نام شهر را در آن قرار بدی

;("dt = db.MySelect("Select * From tblCity
; ComboBox1.DataSource = dt
" comboBox1.DisplayMember = "Cityname
من در اینجا کلاسی dbرو نوشتم که از طریق آن با دیتابیس ارتباط برقرار کردم و کد رو در رویداد form_load قرار بده