我是.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"> </td>
答案 0 :(得分:1)
很明显,正如你所承认的那样,你是C#的新手,因此有许多事情需要指出,正如评论中所述。
runat="server"
属性,代码隐藏不会显示HTML元素。 (对于ASP元素,此属性 required 。)SqlCommand
没有给出连接。要纠正您的代码隐藏,它应该更像以下内容:
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"> </td>
答案 1 :(得分:0)
根据错误,您需要将Row1变量放入范围
TableRow Row1 = new TableRow();
while (rd.Read())
{
Row1.Items.Add(rd[0].ToString());
Table1.Rows.Add(Row1);
}