[英]How to split comma separated values
我在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();
}
}
string str = "John Carter, Mike David, John Edward,";
string[] names = str.Split(',');
foreach (string name in names)
{
if (name.Equals(""))
continue;
///dbstuff
///insert into myTable(ID, Full_Name) values(@ID, @name)
///etc, etc
}
這強烈假設ID不是主鍵。 只要ID不是唯一且不是密鑰,這種方法就應該起作用。
您可以像這樣使用循環執行查詢
foreach (string name in Full_Name.Split(','))
{
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 = name
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
這是我在以上評論中所建議的一個非常粗糙/迅速的概念。 還沒有機會進行測試。
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.Connection = con;
con.Open();
foreach(string currentName in Full_Name.Split(','))
{
if (currentName!="")
{
cmd.Parameters.Add("@ID", SqlDbType.VarChar).Value = ID.Text;
cmd.Parameters.Add("@Full_Name", SqlDbType.VarChar).Value = currentName;
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
}
con.Close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.