0

我有一个使用 connectionString 的表 dbo.MSreplication_options,我正在尝试将此表映射到 datagrid1.DataSource。

SqlConnection cnn;
SqlCommand con;
SqlDataAdapter da;
DataSet ds;

protected void Page_Load(object sender, EventArgs e)
{
    string strcon = ConfigurationManager.ConnectionStrings["masterConnectionString"].ConnectionString;

    cnn = new SqlConnection(strcon);
    con = new SqlCommand("select * from dbo.MSreplication_options");
    con.Connection = cnn;
    ds = new DataSet();
    da = new SqlDataAdapter(con);
    cnn.Open();
    da.Fill(ds);
    cnn.Close();
    DataGrid1.DataSource = ds.Tables[0].ToString();
}

网络配置

<connectionStrings>

    <add name="masterConnectionString" connectionString="Data Source=node39\SQLExpress;Initial Catalog=master;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

在运行时它不映射到datagrid1?我在做什么特别的错误?

4

2 回答 2

4

在 DataGrid1.DataSource = ds.Tables[0].ToString(); 之后执行此操作

DataGrid1.DataBind()
于 2012-06-18T11:21:09.207 回答
2

你不见了DataGrid1.DataBind();

除此之外,Memory Management没有得到照顾。

string strcon = ConfigurationManager.ConnectionStrings["masterConnectionString"].ConnectionString;
using (SqlConnection cnn = new SqlConnection(strcon))
{
    con = new SqlCommand("select * from dbo.MSreplication_options");
    con.Connection = cnn;
    using (DataSet ds = new DataSet())
    {
        da = new SqlDataAdapter(con);
        cnn.Open();
        da.Fill(ds);
        cnn.Close();
        DataGrid1.DataSource = ds.Tables[0].ToString();
        DataGrid1.DataBind();
    }
}
于 2012-06-18T11:27:35.057 回答