使用数据库

时间:2016-03-19 15:51:44

标签: c# asp.net

我是C#asp.net网络表单的新手,搜索所有的步骤,但我没有答案。

string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; //read from web.config.
SqlConnection con = new SqlConnection(constr);
DataTable dt = new DataTable();
con.Open();
SqlDataReader myReader = null;
SqlCommand cmd = new SqlCommand("select * from gender", con);
myReader = cmd.ExecuteReader();
while (myReader.Read())
{
    ddlmarrital.DataSource = myReader;         //assigning datasource to the dropdownlist
    ddlmarrital.DataTextField = "field";       // text field name of table dispalyed in dropdown
    ddlmarrital.DataValueField = "ID";         // to retrive specific  textfield name 
    ddlmarrital.DataBind();                    //binding dropdownlist
}
con.Close();

table1(性别)1.male 2.female。

Mastertable1(姓名" ABC")。(性别"男性)。(地址" ABC")

我想显示保存的值(Mastertable1.gender),如果我想更改值,我可以使用下拉列表进行选择。

2 个答案:

答案 0 :(得分:0)

从ToolBox中删除Web表单上的SqlDataSource对象会更容易。将Dropdownlist设置为sqldatasource对象并配置sqldatasource。

如果必须在代码中执行此操作,请删除while循环。

...
myReader = cmd.ExecuteReader();
ddlmarrital.DataSource = myReader;                 
ddlmarrital.DataTextField = "field";
ddlmarrital.DataValueField = "ID";
ddlmarrital.DataBind();
con.Close();

答案 1 :(得分:0)

您可以尝试以下内容。我重构了一下你的代码,我对usingSqlConnection对象使用了SqlCommand语句,因为它们都实现了IDisposable接口。具体来说,他们使用非托管资源和这些资源,这些资源应该在您完成工作后尽快发布。这就是应该调用Dispose方法的原因。一种方便的方法是使用using语句,如下所示。

string connectionString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 

using(var connection = new SqlConnection(connectionString))
{
    connection.Open();

    var commandText = "SELECT * FROM gender";

    using(var command = new SqlCommand(commandText,connection))
    {
        ddlmarrital.DataSource = command.ExecuteReader();
        ddlmarrital.DataTextField = "field";       
        ddlmarrital.DataValueField = "ID";  
        ddlmarrital.DataBind();         
    }
}