PDA

View Full Version : مشکل در درج کردن چندین رکورد در دیتابیس؟



rouhparvarmehdi
سه شنبه 22 خرداد 1397, 21:05 عصر
سلام دوستان من اطلاعات یک جدول را داخل Datatable میریزم بعدش میخوام داخل جدولی مشابه درج کنم کد نوشته شده به این شکل می باشد.
if (dtdarkh.Rows.Count > 0) {
SqlConnection cn2 = new SqlConnection();
cn2.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\MoveData\mov.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
cn2.Open();
SqlCommand cmd4 = new SqlCommand();
cmd4.Connection = cn2;
for (int i = 0; i < dtdarkh.Rows.Count; i++)
{
cmd4.CommandText = "Insert into Tbl_Darkh(Date_p,Date_s,Number,Date_d,Dr_az,Take,S ig,Name,Family,Father,Codemeli,Ozv,Nob,Madeh) Values " +
"(@V1,@V2,@V3,@V4,@V5,@V6,@V7,@V8,@V9,@V10,@V11,@V1 2,@V13,@V14)";
cmd4.Parameters.AddWithValue("@V1", dtdarkh.Rows[i][0]);
cmd4.Parameters.AddWithValue("@V2", dtdarkh.Rows[i][1]);
cmd4.Parameters.AddWithValue("@V3", dtdarkh.Rows[i][2]);
cmd4.Parameters.AddWithValue("@V4", dtdarkh.Rows[i][3]);
cmd4.Parameters.AddWithValue("@V5", dtdarkh.Rows[i][4]);
cmd4.Parameters.AddWithValue("@V6", dtdarkh.Rows[i][5]);
cmd4.Parameters.AddWithValue("@V7", dtdarkh.Rows[i][6]);
cmd4.Parameters.AddWithValue("@V8", dtdarkh.Rows[i][7]);
cmd4.Parameters.AddWithValue("@V9", dtdarkh.Rows[i][8]);
cmd4.Parameters.AddWithValue("@V10", dtdarkh.Rows[i][9]);
cmd4.Parameters.AddWithValue("@V11", dtdarkh.Rows[i][10]);
cmd4.Parameters.AddWithValue("@V12", dtdarkh.Rows[i][11]);
cmd4.Parameters.AddWithValue("@V13",dtdarkh.Rows[i][12]);
cmd4.Parameters.AddWithValue("@V14", dtdarkh.Rows[i][13]);
cmd4.ExecuteNonQuery();


}
خطایی که می دهد.
The variable name '@V1' has already been declared. Variable names must be unique within a query batch or stored procedure.'

alexmcse
سه شنبه 22 خرداد 1397, 21:23 عصر
فیلد v1 احتمالا فیلد پریمیری کی است
معنی ارور به صورت زیر است
نام متغیر "@ V1" قبلا اعلام شده است. نام متغیر باید در یک دسته پرس و جو یا روش ذخیره شده منحصر به فرد باشد.

danialafshari
سه شنبه 22 خرداد 1397, 21:40 عصر
با سلام
در ابتدای حلقه Parameters رو Clear() کن ببین مشکلت حل میشه؟

for (int i = 0; i < dtdarkh.Rows.Count; i++)
{
cmd4.Parameters.Clear()



موفق باشید

rouhparvarmehdi
سه شنبه 22 خرداد 1397, 21:50 عصر
با سلام
در ابتدای حلقه Parameters رو Clear() کن ببین مشکلت حل میشه؟

for (int i = 0; i < dtdarkh.Rows.Count; i++)
{
cmd4.Parameters.Clear()



موفق باشید
دمت گرم داداش مشکل حل شد.