将多行插入数据库循环

时间:2013-05-02 16:55:09

标签: c#

这段代码有什么问题我实际要做的是 将行插入数据库清除文本框值并输入另一条记录。   问题是,首先循环数据将成功添加...但在下一个迭代循环它将添加空字符串到数据库的行,但我想要的是从文本框接受输入并继续迭代...请尝试阅读代码并帮助我......自从我尝试解决这个问题已经过去2周了... 再一次我想做什么       - 用户输入组成员数       - 小组成员有列,如名字,姓氏性别,city.etc   对于所有组成员(例如: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");

            }


                } 

1 个答案:

答案 0 :(得分:0)

执行插入后,您将清除 txtname.Text txtlname.Text 值。在下一次迭代中,您将重新创建参数,但这次您的文本值为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();
}