Gridview中的自定义SQL

时间:2011-05-18 11:01:10

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

如何使用编程代码将数据放入gridview? 我需要一个带有var的SQL语句:

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

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

欢迎任何帮助!

THX,

3 个答案:

答案 0 :(得分:2)

你可以做点什么

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

答案 1 :(得分: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
    }
    }

答案 2 :(得分:2)

首先,您需要从GridView可以处理的Type中获取数据库中的数据。一个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页面。