从Query的结果向DataTable添加行

时间:2016-12-06 19:49:40

标签: c# asp.net webforms ado.net

我正在尝试做一个简单的过程,但似乎无法使其正常工作。请考虑到我是新手并且在没有任何帮助的情况下学习,除了主要是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

我从你们那里学到了很多东西但是我在这个问题上拼凑了所有问题。感谢您的帮助。

1 个答案:

答案 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
    }
}