这段代码有什么问题我实际要做的是 将行插入数据库清除文本框值并输入另一条记录。 问题是,首先循环数据将成功添加...但在下一个迭代循环它将添加空字符串到数据库的行,但我想要的是从文本框接受输入并继续迭代...请尝试阅读代码并帮助我......自从我尝试解决这个问题已经过去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");
}
}
答案 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();
}