2012-08-06 58 views
-4

我有一个窗体,其中有一个ComboBox控件,其中有两个值。根据所选的下拉值将值插入表中

一旦用户选择列表中的一个项目,我需要显示一个对应于所选选项的数据表。

if (DropDownList1.SelectedValue == 1) 
{ 
    // open a SqlCommand 
    // read values 
    // fill table 
} 
else if (DropDownList1.SelectedValue == 2)  
{ 
    // etc 

的问题是,我只是想填补表的用户进行选择之后。但是当窗体被加载时,组合框会自动选择第一个选项,我的代码将运行,填充表格。

如何防止这种情况发生?

+3

你已经问过的想法,但你有什么问题?你已经尝试了什么? – zeencat 2012-08-06 08:06:39

+0

删除问题可能导致自动禁止问题。改进现有技术总是比较好,而不是删除它们。另外,我希望我的编辑代表您的实际问题。 – Will 2012-08-16 13:45:32

回答

1

到目前为止您尝试了什么?

使表名来自DropDown没有问题,它更多的是为您的应用程序理解和设计数据访问层。在WebForm中是否有保存按钮,并且是在代码背后动态编写SQL代码还是使用存储过程?

起点连接到SQL Server和执行命令的一般类似于下面的(如果你不使用像实体框架ORM):如果您需要了解如何使用EF更多的想法

using (varconn = new SqlConnection(connectionString)) 
using (var cmd = conn.CreateCommand(...))) 
{ 
    conn.Open(); 

    cmd.ExecuteNonQuery(); 
} 

(或简单的DAL技术)与ASP.NET(MVC或Web窗体),看到我的答案在这里:https://stackoverflow.com/a/7474357/559144

+0

嗨..感谢你的回应..呃..我到目前为止还没有尝试过任何东西,只是因为我无能为力。我知道ADO.NET和我的数据库的连接..但我有一个表单,如果用户从列表中选择一个项目,假设他选择了一个名为“Confirmend Order”的项目,那么表单中的所有值都必须插入'dbo.Confirmend_order'。所以这是当我陷入困境.. – Girish 2012-08-06 08:27:52

+1

是的,所以你将不得不在一些DataAccessLayer类库中创建一些方法,你可以从UI控件中传递所有这些值作为参数,然后你将使用带参数的存储过程或内联/ dynamyc SQL创建,并在命令对象上调用ExecuteNonQuery,就像上面的代码片段一样,这有意义吗? – 2012-08-06 08:30:09

+0

谢谢,但我不知道为什么我downvoted 2次..不管怎样,谢谢, – Girish 2012-08-06 08:40:03

0
 DataSet ds = new DataSet(); 
     ds.Tables.Add(new DataTable("DataTableNo1")); 
     ds.Tables.Add(new DataTable("DataTableNo2")); 

     string dtname = comboBox1.Text; 
     ds.Tables[dtname].Rows.Add(new DataRow());