PDA

View Full Version : مشکل این کد چیه؟؟؟؟؟



Sirwan Afifi
جمعه 02 بهمن 1388, 23:15 عصر
آیا به این صورت میشه تو دیتابیس اس کیو ال ذخیره کرد
اینو با اکسس نوشتم جواب میده


DataRow newrow;
SqlConnection con = new SqlConnection("Data Source=localhost;Integrated Security=True;Initial Catalog=kom1");
SqlDataAdapter da = new SqlDataAdapter("select * from s", con);
DataSet ds = new DataSet();
da.Fill(ds);
newrow = ds.Tables["s"].NewRow();
newrow["name"] = (textBox1.Text);
ds.Tables["s"].Rows.Add(newrow);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.Update(ds, "s");
con.Close();
MessageBox.Show("اطلاعات شما با موفقيت ثبت شد");
textBox1.Text = "";

Sirwan Afifi
جمعه 02 بهمن 1388, 23:56 عصر
دوست عزیز یه جوری حرف میزنی انگار من تا حالا با کامپیوتر کار نکردم
من امتحان کردم نشد گفتم شاید استادی مثل شما بدونه ثبت تو دیتابیس با این گونه چطوریه؟

sara62
شنبه 03 بهمن 1388, 00:16 صبح
سلام ، ظاهرا درست به نظر میرسه
با دو خط دستوری که من اضافه کردم امتحانش کن ببین کا میکنه


DataRow newrow;
SqlConnection con = new SqlConnection("Data Source=localhost;Integrated Security=True;Initial Catalog=kom1");
SqlDataAdapter da = new SqlDataAdapter("select * from s", con);
DataSet ds = new DataSet();
da.Fill(ds);
newrow = ds.Tables["s"].NewRow();
newrow.BeginEdit();
newrow["name"] = (textBox1.Text);
newrow.EndEdit();
ds.Tables["s"].Rows.Add(newrow);
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.Update(ds, "s");
con.Close();
MessageBox.Show(" ");
textBox1.Text = "";

موفق باشید

Sirwan Afifi
شنبه 03 بهمن 1388, 00:32 صبح
این خطا رو میده

slashslash2009
شنبه 03 بهمن 1388, 11:52 صبح
نمیدونم میخوای چیکار کنی .
من تونستم با insert این کارو انجام بدم البته با کمک دیتا تیبل . یعنی یک جدول کمکی با چندتا ستون البته واسه برنامه خودم و چندتا سطر

SMRAH1
شنبه 03 بهمن 1388, 12:06 عصر
سلام
خط 5 رو اینطوری تغییر بده :

da.Fill(ds,"s");موفق باشی

حامد مصافی
شنبه 03 بهمن 1388, 12:24 عصر
علاوه بر فرمايش متين جنابSMRAH1 (http://barnamenevis.org/forum/member.php?u=44567) ...

نكته اول : اگر فقط به يك جدول نياز داريد به جاي DataSet از DataTable استفاده كنيد.
نكته دوم : شما كل اطلاعات ديتابيس را لود مي كنيد كه ممكن است هزاران سطر اطلاعات باشد، فقط براي اينكه يك سطر جديد ايجاد كنيد، يعني از اطلاعات استفاده نمي كنيد. پس بهتر است يك SqlCommand تعريف كنيد و با يك دستور Insert Into... و پاس دادن پارامتر ها ازلاعات را به جدول اضافه كنيد.
نكته سوم : اگر جدول شما كليد اصلي نداشته باشد يا رابطه اي براي كليد هاي خارجي داشته باشد SqlCommandBuilder كد هاي دستور sql را توليد نخواهد كرد.

slashslash2009
شنبه 03 بهمن 1388, 12:31 عصر
این همون چیزیه که من گفتم آقا حامد تکمیلش کردن . آقا سیروان روش شما فقط میتونید یک سطر درج کنید

Sirwan Afifi
شنبه 03 بهمن 1388, 23:07 عصر
این همون چیزیه که من گفتم آقا حامد تکمیلش کردن . آقا سیروان روش شما فقط میتونید یک سطر درج کنید

امتحان کنید می بینید که می شه هر تعداد سطر رو می تونید اضافه کنید
البته ناگفته نمونه مشکلم حل شد با تشکر از آقای SMRAH1

slashslash2009
یک شنبه 04 بهمن 1388, 00:01 صبح
آره میشه چونکه شما یک جدول دارید با چندتا سطر و هر سطریو که خواستین میتونید درج کنید