【发布时间】:2014-02-25 20:18:04
【问题描述】:
我在 gridview 中有文本框,我正在执行并插入语句循环遍历我的 gridview 中的每一行。我现在的问题是我可以在文本框中有多个名称,如下所示:
John Carter, Mike David, John Edward,
那么,如何将每个人的姓名拆分并插入到具有相同 ID 的表中?例如,如果当前行的 ID =12,那么我的表将如下所示:
ID Full_Name
12 John Carter
12 Mike David
12 John Edward
这是我的代码:
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
Label ID = row.FindControl("lbl_ID") as Label;
TextBox myUID = row.FindControl("txt_UID") as TextBox;
string Full_Name = Request.Form[row.FindControl("txt_UID").UniqueID];
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConn"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"if not exists(select ID from myTable where ID = @ID)
insert into myTable(ID, Full_Name) values(@ID, @Full_Name)
else update myTable set Full_Name =@Full_Name where ID =@ID";
cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID.Text;
cmd.Parameters.Add("@Full_Name", SqlDbType.VarChar).Value = Full_Name.ToString();
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
【问题讨论】:
-
ID 是什么?如果它是您表的主键,那将是不可能的。
-
不,它是不同的 ID。
-
您需要通过针对 Full_Name 调用 String.Split 来捕获逗号分隔的元素,并且鉴于您的代码设置方式,您需要遍历插入每个结果值的代码。
-
谢谢大卫,但我无法让它工作
-
让我尝试修改上面的代码并将其发布为可能的解决方案。