使用c#在表中插入多个值

编程入门 行业动态 更新时间:2024-10-17 02:49:51
本文介绍了使用c#在表中插入多个值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

以下代码可以正常工作以在一行表中插入新值...但是当我尝试插入多个值时,在输出中这些值会在表中保存两次... plz help

the following code is working fine to insert new values in one row of tables...but when i try to insert multiple values then in the output those values get saved twice in the table...plz help

private void Form1_Load(object sender, EventArgs e) { String strConnection = "Data Source=HP\\SQLEXPRESS;database=MK;Integrated Security=true"; SqlConnection con = new SqlConnection(strConnection); try { con.Open(); SqlCommand sqlCmd = new SqlCommand(); sqlCmd.Connection = con; sqlCmd.CommandType = CommandType.Text; sqlCmd.CommandText = "Select table_name from information_schema.tables"; SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd); DataTable dtRecord = new DataTable(); sqlDataAdap.Fill(dtRecord); comboBox1.DataSource = dtRecord; comboBox1.DisplayMember = "TABLE_NAME"; comboBox1.ValueMember = "TABLE_NAME"; con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) { var collection = this.dataGridView1.Rows; string output = ""; foreach (DataGridViewRow row in collection) { foreach (DataGridViewCell cell in row.Cells) { if (cell.Value != null) { output += cell.Value.ToString() + " "; this.Text = output; } } } } private void PopulateGridView(string tablename) { if (tablename == "System.Data.DataRowView") return; String strConnection = "Data Source=HP\\SQLEXPRESS;database=MK;Integrated Security=true"; SqlConnection con = new SqlConnection(strConnection); try { con.Open(); SqlCommand sqlCmd = new SqlCommand(); sqlCmd.Connection = con; sqlCmd.CommandType = CommandType.Text; sqlCmd.CommandText = "Select * from " + tablename; SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd); DataTable dtRecord = new DataTable(); sqlDataAdap.Fill(dtRecord); dataGridView1.DataSource = dtRecord; con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox1.SelectedValue != null) { PopulateGridView(comboBox1.SelectedValue.ToString()); } } private void InsertInfo() { string connectionString = null; SqlConnection connection; SqlDataAdapter adapter = new SqlDataAdapter(); connectionString = @"Data Source=HP\SQLEXPRESS;database=MK;Integrated Security=true"; connection = new SqlConnection(connectionString); foreach (int rowIndex in lstNewRows) { string insrtQry = "insert into " + comboBox1.Text + " values("; foreach (DataGridViewCell cell in dataGridView1.Rows[rowIndex].Cells) { insrtQry += "''" + cell.Value.ToString() + "'',"; } insrtQry = insrtQry.TrimEnd(",".ToCharArray()); insrtQry += ")"; try { connection.Open(); adapter.InsertCommand = new SqlCommand(insrtQry, connection); adapter.InsertCommand.ExecuteNonQuery(); MessageBox.Show("Row inserted !! "); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } } private void insert_Click(object sender, EventArgs e) { InsertInfo(); } private void dataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e) { lstNewRows.Add(e.Row.Index); } } }

推荐答案

只是看起来很快 - 但是你不是用表中的行填充网格 - 然后迭代那些行并插入它们?所以你要插入已经存在的所有记录?所以它不是两次插入它们,它只是再次插入现有的行? Only looked quickly - but aren''t you populating the grid with the rows from the table - then iterating that collection of rows and inserting them? So you''re inserting all the records that are already there? So it''s not inserting them twice, it''s just inserting existing rows again?

更多推荐

使用c#在表中插入多个值

本文发布于:2023-07-15 10:43:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1110758.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:多个

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!