C# 如何使用MS Access数据库在文本框中显示数据
我试图将数据库中的用户数据显示到文本框中,以便用户以后可以编辑/更新这些数据 至少有一个必需参数未设置任何值的Im getting error 我没有编写SELECT*FROM,因为我没有显示AdminRights之类的数据 你能帮我纠正这个错误吗 这是我的密码C# 如何使用MS Access数据库在文本框中显示数据,c#,ms-access,textbox,oledbdataadapter,oledbdatareader,C#,Ms Access,Textbox,Oledbdataadapter,Oledbdatareader,我试图将数据库中的用户数据显示到文本框中,以便用户以后可以编辑/更新这些数据 至少有一个必需参数未设置任何值的Im getting error 我没有编写SELECT*FROM,因为我没有显示AdminRights之类的数据 你能帮我纠正这个错误吗 这是我的密码 private void refresh_Click(object sender, RoutedEventArgs e) { if (!isPostBack) { Data
private void refresh_Click(object sender, RoutedEventArgs e)
{
if (!isPostBack)
{
DataTable dt = new DataTable();
con.Open();
OleDbDataReader dr = null;
OleDbCommand cmd = new OleDbCommand("SELECT [Name], [LastName], [UserName], [Password], [Address], [Email] FROM User WHERE [ID] = ?", con);
dr = cmd.ExecuteReader();
while (dr.Read())
{
name.Text = (dr["Name"].ToString());
lName.Text = (dr["LastName"].ToString());
uName.Text = (dr["UserName"].ToString());
pass.Text = (dr["Password"].ToString());
address.Text = (dr["Address"].ToString());
email.Text = (dr["Email"].ToString());
id.Text = (dr["ID"].ToString());
}
con.Close();
}
}
那个?占位符需要在命令参数集合中定义的参数
因此,在调用ExecuteReader之前,需要为ID字段添加参数
cmd.Parameters.AddWithValue("@p1", ????value for the ID field);
dr = cmd.ExecuteReader();
如果要从表中检索单个记录,则需要知道唯一标识表中记录的字段的值。
要获得该值,必须了解如何达到该代码。如果从列表、网格或组合中选择一行,则可能已使用用户名及其ID加载该控件
String id = idTextBox.Text;
OleDbCommand command = new OleDbCommand("Select *from User Where [ID]= "+ id +" ");
command.Connection = conn;
OleDbDataReader dr = null;
conn.Open();
dr = command.ExecuteReader();
while (dr.Read())
{
name.Text = (dr["Name"].ToString());
lName.Text = (dr["LastName"].ToString());
uName.Text = (dr["UserName"].ToString());
pass.Text = (dr["Password"].ToString());
address.Text = (dr["Address"].ToString());
email.Text = (dr["Email"].ToString());
id.Text = (dr["ID"].ToString());
}
conn.Close();
这将很好地改变行并执行问号应该被实际ID替换。@Abbas,该应用程序有很多用户。如果我选择一个特定ID,它将始终显示同一用户的数据。然后,您应该从数据库获取所有数据并运行foreach@Sajeetharan你能举个例子吗?但是我如何设置一个特定的参数,因为数据库中有许多不同ID的用户?有必要了解你是如何获得这段代码的。您是否从列表框、网格或类似控件中选择用户名?我使用名为“刷新”的按钮。当我点击它时,数据应该显示在文本框中,是否有用户登录到应用程序?如果是这样,请获取该用户的ID,并使用该ID从数据库中获取单个记录。
String id = idTextBox.Text;
OleDbCommand command = new OleDbCommand("Select *from User Where [ID]= "+ id +" ");
command.Connection = conn;
OleDbDataReader dr = null;
conn.Open();
dr = command.ExecuteReader();
while (dr.Read())
{
name.Text = (dr["Name"].ToString());
lName.Text = (dr["LastName"].ToString());
uName.Text = (dr["UserName"].ToString());
pass.Text = (dr["Password"].ToString());
address.Text = (dr["Address"].ToString());
email.Text = (dr["Email"].ToString());
id.Text = (dr["ID"].ToString());
}
conn.Close();