我正在尝试做一个简单的过程,但似乎无法使其正常工作。请考虑到我是新手并且在没有任何帮助的情况下学习,除了主要是SO帖子。
我想查询SQL Server表,然后将检索到的记录追加到DataTable
。以下是我到目前为止的情况:
ASPX:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtScan" runat="server"></asp:TextBox><br />
<asp:Button ID="btnSearch" runat="server" Text="SEARCH" OnClick="btnSearch_Click" />
</div>
CS:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSearch_Click(object sender, EventArgs e)
{
AddItem();
}
protected void AddItem()
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["2008DB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Connection = conn;
cmd.CommandText = "select * from items where ID = @lookup";
cmd.Parameters.Add("@lookup", SqlDbType.NVarChar).Value = btnSearch.Text;
da.Fill(dtScans); //I shouldn't be filling this I don't think?
}
}
}
我对以下内容感到困惑:
1)放置DataTable dtScans = new DataTable();
2)如何正确读取数据库中的记录,然后将它们附加到dtScans
。我之前使用过SqlDataAdapter.Fill()
方法。这适合吗?
3)一旦确定,我将为DataTable
DataSource
GridView
我从你们那里学到了很多东西但是我在这个问题上拼凑了所有问题。感谢您的帮助。
答案 0 :(得分:1)
首先 - 您应该花些时间熟悉ADO.NET框架。 MSDN中有很好的文档。这是一个非常基本的ADO任务,但它不是唯一的方法。您可以从这里开始获取有关数据表的信息:http://msdn.microsoft.com/en-us/library/t31h6yhs%28v=vs.110%29.aspx
那就是说,你很亲密!您需要创建一个新的DataTable
实例,然后就可以填写它,就像您说的那样。如果你打算一次使用它,它可以在你的AddItem()
方法中使用。填好后,您可以将其绑定到GridView
。
protected void AddItem()
{
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["2008DB"].ConnectionString))
{
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter(cmd);
cmd.Connection = conn;
cmd.CommandText = "select * from items where ID = @lookup";
cmd.Parameters.Add("@lookup", SqlDbType.NVarChar).Value = txtScan.Text; //You'll also want to fix this line to use the TextBox instead of the Button
DataTable dtScans = new DataTable(); //Create the new DataTable so you have something to fill
da.Fill(dtScans);
GridView1.DataSource = dtScans; //Set the DataTable to be the sourse for a GridView
}
}