2012-06-18 2 views
0

У меня есть таблица dbo.MSreplication_options using connectionString, я пытаюсь сопоставить эту таблицу с datagrid1.DataSource.Sql Table Does not Map to Datagrid

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? какую конкретную ошибку я делаю?

+0

Вам не нужно делать 'cnn.Open(); da.Fill (ds); cnn.Close(); ' Поскольку SqlDataAdapter использует отключенную архитектуру ADO.net, вместо этого просто напишите' da.Fill (ds); ' – yogi

ответ

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(); 
    } 
} 
4

Сделайте это после DataGrid1.DataSource = ds.Tables [0] .ToString();

DataGrid1.DataBind() 
+1

И, как и в столбце Kanavis, вы хотите, чтобы ваши объекты были правильно расположены – theedam

+0

спасибо сэр. Я просто забыл поставить Databind. Оно работает. –