1

我需要一些帮助,因为我一直在尝试不同的事情,但似乎没有什么能正常工作问题本身就是下面的问题。

如何使用 C# 背后的代码将数据绑定到具有本地 SQL Server 数据库的 Visual Studio 2013 中的网格视图?

这是我正在尝试的 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();
}
4

3 回答 3

1

您只是将您的空DataSet分配给您的 Gridview 的DataSource.

您需要使用.Fill方法来填写您DataSetSqlDataAdapter. 你不需要使用ExecuteNonQuery. 此方法仅执行您的查询。它不会返回任何数据或结果。

还使用using语句来处理您的SqlConnection,SqlCommandSqlDataAdapter. 使用时不需要.Close()数据库连接和对象。

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();
    }
}
于 2014-11-08T12:51:28.427 回答
0

您错过Fill了填充数据集的方法,这就是我认为您无法显示的原因gridview

填充方法是非常重要的方法 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 调用连接字符串的语法

于 2014-11-08T12:50:35.557 回答
0

您应该使用这样的语句:当您使用 SqlDataAdapter 时,您应该使用 Fill 方法填充数据集,然后设置 GridView 的 DataSource 属性

    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();
于 2014-11-08T12:51:00.420 回答