2014-11-08 2 views
1

Мне нужна помощь, потому что я пробую разные вещи, но ничего не работает правильно, сам вопрос таков.ASP.NET локальная база данных SQL Server C# привязка данных gridview Visual Studio 2013

Как связать данные с сеткой в ​​Visual Studio 2013 с локальной базой данных SQL Server, используя код C#?

Вот C# Я пытаюсь:

protected void Page_Load(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Guillermo\Desktop\HorsensHospital\App_Data\HospitalDB.mdf;Integrated Security=True;Connect Timeout=30"); 
    con.Open(); 

    SqlCommand cmd = new SqlCommand("SELECT [Task_temp_name], [Task_templatesID] FROM [Task_templates]", con); 

    SqlDataAdapter sda = new SqlDataAdapter(cmd); 
    DataSet ds = new DataSet(); 

    GridView1.DataSource = ds; 
    GridView1.DataBind(); 

    cmd.ExecuteNonQuery(); 

    con.Close(); 
} 
+0

Вы получаете какие-либо ошибки –

ответ

0

Вы пропустили Fill метод, чтобы заполнить ваш ваш набор данных, поэтому я думаю, что вы не в состоянии отобразить gridview.

Метод Fill очень Improtant метод Bcoz независимо от вашего запроса возвращается, которые должны быть заполнены в наборе данных & то, что набор данных связанного приложения вашим Gridiview Надеюсь, что это поможет вам

protected void Page_Load(object sender, EventArgs e) 
{ 
     SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Guillermo\Desktop\HorsensHospital\App_Data\HospitalDB.mdf;Integrated Security=True;Connect Timeout=30"); 
     con.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT [Task_temp_name], [Task_templatesID] FROM [Task_templates]", con); 
     SqlDataAdapter sda = new SqlDataAdapter(cmd); 
     DataSet ds = new DataSet(); 
     sda.Fill(ds); 
     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
     cmd.ExecuteNonQuery(); 
     con.Close(); 

}

Примечание: Вам необходимо создать строку подключения в Web.Config. Bcoz Если вы создали свою строку соединения, вам не нужно будет создавать ее снова. После создания там вам просто нужно будет позвонить, что из Web.config

SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionStringNameFromWebConfig"].ConnectionString); 

Это синтаксис для вызова строки соединения из web.config

+0

У вас проблема решена? @Guillermo –

0

Вы должны использовать заявление, как это: при использовании SqlDataAdapter вы должны заполнить набор данных с Заливка метод затем установите DataSource свойства GridView

SqlCommand cmd = new SqlCommand("SELECT [Task_temp_name], [Task_templatesID] FROM  [Task_templates]", con); 
    SqlDataAdapter sda = new SqlDataAdapter(cmd); 
    DataTable dt = new DataTable(); 
    sda.Fill(dt); 
    GridView1.DataSource = dt; 
    GridView1.DataBind(); 
    con.Close(); 
1

Вы просто Ассинг ваш пуст DataSet к вашему Gr idview DataSource.

Вам необходимо использовать .Fill method для заполнения DataSet из SqlDataAdapter. Вам не нужно использовать ExecuteNonQuery. Этот метод просто выполняет ваш запрос. Он не возвращает никаких данных или чего-то в результате.

Также используйте using statement для утилизации SqlConnection, SqlCommand и SqlDataAdapter. Вам не нужно связываться с вашими подключениями к базе данных и объектами, когда вы ее используете.

using(SqlConnection con = new SqlConnection(conString)) 
using(SqlCommand cmd = con.CreateCommand()) 
{ 
    cmd.CommandText = "SELECT [Task_temp_name], [Task_templatesID] FROM [Task_templates]"; 
    using(SqlDataAdapter sda = new SqlDataAdapter(cmd)) 
    { 
     DataSet ds = new DataSet(); 
     sda.Fill(ds); 
     GridView1.DataSource = ds; 
     GridView1.DataBind(); 
    } 
} 
Смежные вопросы