-2

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

            }


                } 
4

1 回答 1

0

插入后,您将清除txtname.Texttxtlname.Text值。在下一次迭代中,您将重新创建参数,但这次您的文本值为空。

 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();
}
于 2013-05-02T17:13:20.007 回答