【问题标题】:ASP.NET C# How to fill table from databaseASP.NET C#如何从数据库中填充表
【发布时间】:2016-10-25 18:47:52
【问题描述】:

这是我的 .aspx 文件中的表格:

        <asp:Table ID="Tournament" runat="server">
            <asp:TableHeaderRow>
                <asp:TableHeaderCell>Name</asp:TableHeaderCell>
                <asp:TableHeaderCell>Start date</asp:TableHeaderCell>
            </asp:TableHeaderRow>
        </asp:Table>

这就是我从数据库中获取数据的方式:

        string conStr = "...";
        SqlConnection sqlConnection = new SqlConnection(conStr);
        string sqlString = "SELECT name, startdate FROM table WHERE startdate > @end_date AND name = ...";
        IDbCommand idbCommand = new SqlCommand(sqlString, sqlConnection);
        IDbDataParameter parameter = idbCommand.CreateParameter();
        parameter.ParameterName = "@end_date";
        parameter.Value = DateTime.Now;
        idbCommand.Parameters.Add(parameter);
        sqlConnection.Open();

如何用我的 sql 数据库中的数据填充我的 asp:Table?

【问题讨论】:

  • 改用GridView控件。

标签: c# sql asp.net webforms


【解决方案1】:

您应该使用像asp:GridView 这样的DataControl 而不是asp:Table。如果是asp:Table,您必须将整个数据手动添加到您的行/列中。如果是asp:GridView,它只是一个数据绑定。

cs:

string query = "SELECT name, startdate FROM table WHERE startdate > @end_date AND name = ...";
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
    using (SqlCommand cmd = new SqlCommand(query, myConnection))
    {
        myConnection.Open();
        SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        DataTable dt = new DataTable();
        dt.Load(dr);
        Tournament.DataSource = dt;
        Tournament.DataBind();
    }
}

aspx:

 <asp:GridView ID="Tournament" runat="server"></asp:GridView>

【讨论】:

  • 在这种情况下,gridview 是什么?为什么要使用它而不是将表用作
  • @DexterWhelan Tournament.DataSource = dt; 在这里我将DataTable 分配给GridView
【解决方案2】:

这样用

 string conStr = "...";
            SqlConnection sqlConnection = new SqlConnection(conStr);
            string sqlString = "SELECT name, startdate FROM table WHERE startdate > @end_date AND name = ...";
            SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConnection);
            da.SelectCommand.Parameters.AddWithValue("@end_date", DateTime.Now);
            DataTable dt = new DataTable();
            da.Fill(dt);

            Tournament.DataSource = dt;
            Tournament.DataBind();
        }

【讨论】:

    【解决方案3】:
        SqlCommand cmd = new SqlCommand();
        SqlConnection con = new SqlConnection();
    
    
           try
            {
                using (SqlConnection con = new SqlConnection("Data Source = [SERVERNAME]; Initial Catalog = CustomerOrders; Integrated Security = true"))
                {
                    String name = dropDownList.SelectedItem.Text;
                    SqlDataAdapter cmd = new SqlDataAdapter("SELECT * FROM Customer INNER JOIN Orders ON Customer.CustomerID = Orders.ReferenceID WHERE Name = '" + name + "'", con);
                    con.Open();
                    DataTable dtbl = new DataTable();
                    cmd.Fill(dtbl);
                    gvPhoneBook.DataSource = dtbl;
                    gvPhoneBook.DataBind();
    
                }
            }
            catch (Exception Ex)
            {
                Console.WriteLine(Ex.Message);
            }
    
    
    
            <asp:GridView ID="gridView" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:BoundField DataField="OrderID" HeaderText="OrderID" />
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" />
                <asp:BoundField DataField="Quantity" HeaderText="Quantity" />
                <asp:BoundField DataField="Date" HeaderText="Date" />
                <asp:BoundField DataField="Dispatched" HeaderText="Dispatched" />
            </Columns>
            </asp:GridView>
    

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 2013-01-31
      • 2020-05-09
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多