向数据库循环插入多行

本文关键字:插入 循环 数据库 | 更新日期: 2023-09-27 18:11:46

这段代码有什么问题,我实际上要实现的是向数据库插入行,清除文本框值并输入另一条记录。问题是首先循环数据将成功添加…但是在下一次迭代循环中,它会将空字符串添加到数据库的行中,但我想要的是接受来自文本框的输入并继续迭代…请试着阅读代码并帮助我…自从我试图解决这个问题以来已经有2周了。这也是我想做的-user输入群组成员数量-组成员有列,如,名,姓,性别,城市等对于所有组成员(例如:6个组成员)添加6行不同的列将被添加但我的代码是添加第一行,剩下的5行将是空数据对不起,我的英语不好,谁来想想我在想什么

    {{
        private void btnAddloan_Click(object sender, RoutedEventArgs e)    
            if (txtname.Text != "" && txtlname.Text != "")
            {
                int c=0;
                int input=int.Parse(txttotalnumberofgroupmembers.Text);
                do
                {
                    string connstr = "Data Source=GER-PC''PLEASEGOD;Initial Catalog=ACSI;Integrated Security=True";
                    SqlConnection con = new SqlConnection(connstr);
                    con.Open();
                    SqlCommand cmd = new SqlCommand("insert into Customer(FirstName,LastName)  values(@n,@p)", con);
                    cmd.Parameters.AddWithValue("@p", txtname.Text);
                    cmd.Parameters.AddWithValue("@n", txtlname.Text);
                    cmd.ExecuteNonQuery();
                    con.Close();
                    lblnotify.Content = c + 1 + "" + "members added";
                     //clear textbox values and wait for another input
                    txtname.Text = "";
                    txtlname.Text = "";
                    if (txtname.Text != "" && txtlname.Text != "")
                   {
                      continue;
                   }
                  else
                   {
                        MessageBoxResult result =MessageBox.Show("procces","Continue Adding Memebers",MessageBoxButton.YesNoCancel,MessageBoxImage.Warning);
                        //txtname.Text = s;
                        //txtlname.Text= s1;
                         //MessageBox.Show();
                        switch (result)
                        {
                            case MessageBoxResult.Yes:
                                if (txtname.Text != "")
                                {
                                }
                                else
                                {

                                }
                                break;
                            case MessageBoxResult.No:
                                break;
                            case MessageBoxResult.Cancel:
                                break;
                        }
                   }
                   c++;
                } while (c < input);

            }
            else
            {
                MessageBox.Show("plese fill first name and last name");
            }

                } 

向数据库循环插入多行

正在清除txtname。文本txtlname。插入后的文本值。在下一次迭代中,您将重新创建Parameters,但这一次您的文本值为EMPTY。

 txtname.Text = "";
 txtlname.Text = "";

与其重新创建命令对象,不如直接执行命令对象N次。如:

SqlCommand cmd = new SqlCommand("insert into Customer(FirstName,LastName)  values(@n,@p)", con);
cmd.Parameters.AddWithValue("@p", txtname.Text);
cmd.Parameters.AddWithValue("@n", txtlname.Text);
for(int i = 0; i < input; i++)
{
    cmd.ExecuteNonQuery();
}