网格视图中的自定义 SQL
本文关键字:自定义 SQL 视图 网格 | 更新日期: 2023-09-27 17:57:03
如何使用编程代码将数据放入网格视图中?我需要一个包含变量的 SQL 语句:
"SELECT Mod_Naam, Mod_Omschrijving FROM Model WHERE Mod_ID = " + modid + " ", con
我尝试了向导,但我不能在其中使用变量,所以我必须使用编程代码(以前从未这样做过,不知道怎么做)
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
}
}
你可以做类似的事情
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();
首先,您需要以 GridView 可以处理的类型从数据库中获取数据。数据表就可以了。
下面的代码使用从查询检索的数据填充数据表"模型"。
// 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注入的影响
有关运行安全查询的更多信息;我会向您推荐有关预准备语句的 MSDN 页面。