从数据库向表中添加数据

时间:2014-04-24 20:38:12

标签: c# .net sql-server

我是.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>

2 个答案:

答案 0 :(得分:1)

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

  • 如果没有runat="server"属性,代码隐藏不会显示HTML元素。 (对于ASP元素,此属性 required 。)
  • 正如marc_s指出的那样,您的数据库通信当前会产生运行时错误,因为SqlCommand没有给出连接。
  • 在某些时候,您必须真正熟悉the using statement

要纠正您的代码隐藏,它应该更像以下内容:

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>

答案 1 :(得分:0)

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

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