将数据从数据库添加到表中

本文关键字:添加 数据库 数据 | 更新日期: 2023-09-27 18:00:03

我是.net和C#的新手,我想执行更新/删除。我使用的是一个有表格的模板。我想从数据库中获取数据并显示在该表中,然后执行更新。

protected void Page_Load(object sender, EventArgs e)  
{
   SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
   SqlDataReader rd;   
   SqlCommand comand = new SqlCommand();
   //open connection with database
   connection.Open();
   //query to select all users with the given username
   comand.CommandText = "select * from artikulli ";
   rd = comand.ExecuteReader();
   if(rd.HasRows )
   {
      while (rd.Read())
      {
         Row1.Items.Add(rd[0].ToString());
      }
   }
   connection.Close();
}

Row1是表行的id。我知道这不是最好的方法,也不起作用。

我得到这个错误:

CS0103:名称"Row1"在当前上下文中不存在

我的表行Row1声明如下:

<td id="Row1" style="width: 73px">&nbsp;</td>

将数据从数据库添加到表中

很明显,正如您所承认的,您是C#的新手,因此有许多事情需要指出,正如评论中所述。

  • 如果没有runat="server"属性,HTML元素将不会对代码隐藏可见。(此属性是ASP元素所必需的。)
  • 正如marc_s所指出的,您的数据库通信当前会产生运行时错误,因为SqlCommand没有连接
  • 在某个时刻,您必须真正熟悉using语句

要更正后面的代码,应该更像以下内容:

protected void Page_Load(object sender, EventArgs e)
{
    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString))
    {
        using (SqlCommand command = connection.CreateCommand())
        {
            //open connection with database
            connection.Open();
            //query to select all users with the given username
            command.CommandText = "select * from artikulli ";
            List<object> users = new List<object>();
            using (SqlDataReader rd = command.ExecuteReader())
            {
                if (rd.HasRows)
                {
                    while (rd.Read())
                    {
                        users.Add(rd[0].ToString());
                    }
                }
            }
            myGridView.DataSource = users;
            myGridView.DataBind();
        }
    }
}

其中,myGridView是在aspx页面中创建的GridView的实例。列表users应该是您想要创建的任何类的列表,以显示用户数据,这将决定GridView实例的格式。

只是为了让您看到数据库查询工作正常,您可以根据查询结果执行以下操作(尽管我绝对建议最终实现GridView):

System.Text.StringBuilder sb = new System.Text.StringBuilder();
using (SqlDataReader rd = command.ExecuteReader())
{
    if (rd.HasRows)
    {
        while (rd.Read())
        {
            sb.Append(rd[0].ToString());
            sb.Append("<br />");
        }
    }
}
Row1.InnerHtml = sb.ToString();

您必须将Row1更改为

<td id="Row1" style="width: 73px" runat="server">&nbsp;</td>

根据错误,您需要将Row1变量带入范围

TableRow Row1 = new TableRow();
while (rd.Read())
{
   Row1.Items.Add(rd[0].ToString());
   Table1.Rows.Add(Row1);
}