【问题标题】:Custom SQL in a GridviewGridview 中的自定义 SQL
【发布时间】:2011-08-27 23:13:49
【问题描述】:

如何使用编程代码将数据放入网格视图? 我需要一个包含变量的 SQL 语句:

"SELECT Mod_Naam, Mod_Omschrijving FROM Model WHERE Mod_ID = " + modid + " ", con

我尝试了向导,但我不能在其中使用变量,所以我必须使用编程代码(以前从未这样做过,也不知道怎么做)

【问题讨论】:

  • 你能说出你到底需要什么
  • 他需要的是他问题的第一行:“如何使用编程代码将数据放入网格视图?” ;-)

标签: c# .net asp.net sql gridview


【解决方案1】:

首先,您需要以 GridView 可以处理的类型从数据库中获取数据。一个 DataTable 就可以了。

以下代码使用从查询中检索到的数据填充 DataTable“模型”。

// Assuming 'connection' is a valid connection to your database
string modid = "134"; // or int modid = 134;
string query = "SELECT Mod_Naam, Mod_Omschrijving 
                FROM Model 
                WHERE Mod_ID = " + modid;
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
DataSet models = new DataSet();
adapter.Fill(models , "Models");

接下来,您希望将数据附加到您的 GridView。如果您只想在页面加载时加载数据,而不是在回发时加载数据,您可以将其放在页面的 Page_Load 和 if(!Page.IsPostBack) 区域中。

if (models.Tables.Count > 0)
{
    myGridView.DataSource = models;
    myGridView.DataBind();
}

请注意,最好让您的查询免受 SQL 注入的影响

有关运行安全查询的更多信息;我建议您参考有关 prepared statements 的 MSDN 页面。

【讨论】:

    【解决方案2】:
    using (SqlConnection c = new SqlConnection(
        Properties.Settings.Default.DataConnectionString))
        {
        c.Open();
        // Create new DataAdapter
        using (SqlDataAdapter a = new SqlDataAdapter("SELECT Mod_Naam, Mod_Omschrijving FROM Model WHERE Mod_ID = @modid ", c))
        {
            a.SelectCommand.Parameters.AddWithValue("modid", "");
    
            // Use DataAdapter to fill DataTable
            DataTable t = new DataTable();
            a.Fill(t);
    
            // GridView1.DataSource = t; // <-- From your designer
        }
        }
    

    【讨论】:

      【解决方案3】:

      你可以做类似的事情

          SqlConnection con = new SqlConnection("");//put connection string here
          SqlCommand objCommand = new SqlCommand("SELECT FirstName, LAstName from MyTable where FirstName = '" + "ABC" + "'", con);//let MyTable be a database table
      con.Open();
          sqlDataReader dr = objCommandExecuteReader();
      myGridView.DataSource = dr;//let myGridView be your GridView name
      myGridView.DataBind();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-21
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多