2011-12-29 52 views
0

我有三个下拉列表,这些值要插入数据库中的一个特定字段。但我是新来的ASP。在数据库(ASP)的字段中插入多个下拉列表值

这是我的以下代码:

Dim strConn = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString 
    Dim myConn As New SqlConnection(strConn) 
    Dim cmd = "INSERT INTO [IndividualWorkout] (WorkoutProgramName, WorkoutProgramPosted, WorkoutProgramDesc, IndividualWorkoutName, IndividualWorkoutTips, TimingID) VALUES (@WorkoutProgramName, @WorkoutProgramPosted, @WorkoutProgramDesc, @IndividualWorkoutName, @IndividualWorkoutTips, @TimingID)" 
    Dim myCmd As New SqlCommand(cmd, myConn) 
    myCmd.Parameters.AddWithValue("@WorkoutProgramName", TextBox1.Text) 
    myCmd.Parameters.AddWithValue("@WorkoutProgramPosted", TextBox2.Text) 
    myCmd.Parameters.AddWithValue("@WorkoutProgramDesc", TextBox3.Text) 
    myCmd.Parameters.AddWithValue("@IndividualWorkoutName", TextBox4.Text) 
    myCmd.Parameters.AddWithValue("@IndividualWorkoutTips", TextBox5.Text) 
    myCmd.Parameters.AddWithValue("@TimingID", DropDownList4.SelectedValue.ToString()) 
    myCmd.Connection = myConn 
    myConn.Open() 
    myCmd.ExecuteNonQuery() 
    myConn.Close() 

任何人都可以引导我/帮我用下面的代码的编辑,使其中选择将在TimingID去3个下拉列表值。

谢谢

+0

你想将3个值连接成一列吗? – 2011-12-29 12:40:06

+0

您如何建议将三个值放入一个值?您可以在字符串中使用以逗号分隔的列表,或者使用XML(overkill),或者使用一些狂野黑客(不推荐),或者简单地添加两列(如果可能,建议使用) – sq33G 2011-12-29 13:34:59

+0

当连接时,我通常避免使用逗号分隔符,与字符串的潜在冲突。考虑管道(“|”)或其他确定的字符不会出现在您的值中以确保安全。 – nycdan 2011-12-29 15:02:04

回答

1

如果你想连接值,你可以这样做。

string s = DropDownList4.SelectedValue.ToString() + "|" 
    + DropDownList5.SelectedValue.ToString() + "|" 
    + DropDownList6.SelectedValue.ToString(); 
myCmd.Parameters.AddWithValue("@TimingID", s); 

然后,当您使用.Split()或类似函数从该字段检索数据时,您将不得不解析出3个值。

就像一个说明,ID字段使用连接字符串似乎很奇怪。我假设这个领域需要唯一性,这看起来有风险,通过使用下拉值的组合。你有覆盖吗?

+0

感谢您的帮助。我会把它暴露给asp。很多事情都不确定。 – downsidegoodie 2011-12-29 15:14:36

+0

祝你好运。考虑上面说的sq33g。如果您可以修改表格设计,那么您可能只想单独存储这三个字段并相应地修改您的索引。另外,如果您需要唯一的ID字段,则可以为此目的创建单独的标识字段。 – nycdan 2011-12-29 15:18:45

相关问题