PDA

View Full Version : سوال: درج دیتاتیبل در دیتابیس



mahdioo12194
دوشنبه 07 مرداد 1392, 23:27 عصر
سلام من یه گرید دارم(سبد خریده) که بایند شده به دیتاتیبل می خوام با زدن دکمه نهایی اطلاعات در دیتابیس

درج شود با tableadapter باشه بهتره چه کار کنم؟

mahdioo12194
چهارشنبه 09 مرداد 1392, 21:58 عصر
کسی نیست جواب ما رو بده
؟

fakhravari
چهارشنبه 09 مرداد 1392, 23:09 عصر
مشکل کجان؟
با یه حلقه مقدار ستون بخون دیگه for (int i = 0; i < dt.Rows.Count; i++)

mahdioo12194
چهارشنبه 09 مرداد 1392, 23:42 عصر
چه جوری سطر به سطر درجش کنم در دیتابیس!

mahdioo12194
چهارشنبه 13 شهریور 1392, 17:35 عصر
مشکل کجان؟
با یه حلقه مقدار ستون بخون دیگه for (int i = 0; i < dt.Rows.Count; i++)

فرض کن 100 تا سطر داریم با حلقه باید بیام تک تک سطرها رو درج کنم یعنی صد بار به دیتابیس وصل شم!

این بهینه نیست من می خوام یه بار وصل شم و عملیات درج رو انجام بدم؟!!

mahdidabaghi
جمعه 15 شهریور 1392, 01:42 صبح
سلام
به اين تايپيك برو http://barnamenevis.org/showthread.php?402498-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%AF%DB%8C%D8%AA%D8%A7%D8%AA%DB%8C%D8%A8%D9%84-%D8%A8%D9%87-%D9%BE%D8%B1%D9%88%D8%B3%DB%8C%D8%AC%D8%B1&highlight=mahdidabaghi

General-Xenon
جمعه 15 شهریور 1392, 05:19 صبح
فرض کن 100 تا سطر داریم با حلقه باید بیام تک تک سطرها رو درج کنم یعنی صد بار به دیتابیس وصل شم!

این بهینه نیست من می خوام یه بار وصل شم و عملیات درج رو انجام بدم؟!!

سلام شما با توجه به گفته های آقای fakhravari بیا 100 تا یا حالا N تا Query بساز و پاس بده .
// Messal Chon man Grideto nemidonam chi be chie az 1 datatable Estefade kardam ja Grid
DataTable dtSample = new DataTable();
dtSample.Columns.Add(new DataColumn() { ColumnName = "col1Sample", DataType = typeof(int) });
dtSample.Columns.Add(new DataColumn() { ColumnName = "col2Sample", DataType = typeof(string) });
for (int i = 1; i < 150; i++) { dtSample.Rows.Add(i, "عبارت شماره " + i.ToString()); }
// ================================================== ===================================
string _cmd = "";
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand("", new System.Data.SqlClient.SqlConnection("connectionString"));

// Meghdar Giri az Grid ya hala Datatable
for (int i = 0; i < dtSample.Rows.Count; i++)
{
// Sample 1
cm.CommandText += "INSERT INTO TABLE(col1,col2) VALUES ("+
dtSample.Rows[i].Field<object>(0).ToString()+
",N'" + dtSample.Rows[i].Field<object>(1).ToString() + "');";

// Sample 2
cm.CommandText += "INSERT INTO TABLE(col1,col2) VALUES (@r" + i.ToString() + "c1,@r" + i.ToString() + "c2);";
cm.Parameters.AddWithValue("@r" + i.ToString() + "c1", dtSample.Rows[i].Field<object>(0).ToString());
cm.Parameters.AddWithValue("@r" + i.ToString() + "c2", dtSample.Rows[i].Field<object>(1).ToString());
}
if (cm.CommandText != "" && cm.Connection.State != ConnectionState.Open) cm.Connection.Open();
cm.ExecuteNonQuery();
cm.Connection.Close();

mahdioo12194
جمعه 15 شهریور 1392, 10:56 صبح
به جای کد زیر



dtSample.Rows[i].Field<object>(0)


نمیشه از این استفاده کرد؟




dtSample.Rows[i][0]