[英]Databinding in WPF (C#)
不便之处,敬请原谅。
想询问有关数据库或数据绑定的问题
我的窗口看起来像这样: http : //i25.tinypic.com/a0x5kn.jpg
浏览按钮是查找“我的网上邻居”
private void browseBtn_Click(object sender, RoutedEventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
Type t = dialog.GetType();
System.Reflection.FieldInfo fi = t.GetField("rootFolder", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
fi.SetValue(dialog, 0x0012); dialog.ShowDialog();
dialog.ShowDialog();
string selected = dialog.SelectedPath;
computerText.Text = dialog.SelectedPath;
}
所以现在我的computerText.Text通过信息,例如:Computer1
现在进行登录,我希望数据库能够查看computerText的信息是否在该用户名和密码下。 我已经使用Microsoft Access创建了一个看起来像这样的数据库...
id computerName loginID password
1 Computer1 com1 123456
2 Computer2 com2 234567
所以我大致输入loginBtn的命令...
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
// if the computerText.Text == my datasource's data [computerName] && loginName.Text == my datasource's data [loginID] && password.Text == my datasource's data [password]
{
loginStatus.Text = "Login Success!";
}
else
{
loginStatus.Text = "Login Failed!";
}
所以我的问题是:
1)如何绑定我现在的数据库?
2)如何编写我想做的上述代码?
需要帮助= [
更新完成了以下代码:
private void loginBtn_Click(object sender, RoutedEventArgs e)
{
OleDbConnection conn;
OleDbCommand comm;
OleDbDataReader dr;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/Database1.accdb");
comm = new OleDbCommand("Select * from Remote where loginId =@id and password=@pass", conn);
comm.Parameters.Add(new OleDbParameter("@id",System.Data.oleDbType.NVarChar,20, "loginID"));
comm.Parameters.Add(new OleDbParameter("@pass",System.Data.oleDbType.NVarChar,20, "password"));
conn.Open();
dr = comm.ExecuteReader();
conn.Close();
if (dr.HasRows)
{
loginStatus.Text = "Login Successfully";
}
else
{
loginStatus.Text = "Login Failed!";
string message = "Wrong username/password is been entered!";
string caption = "Alert!";
MessageBoxButton buttons = MessageBoxButton.OK;
MessageBoxImage icon = MessageBoxImage.Warning;
System.Windows.MessageBox.Show(message, caption, buttons, icon);
}
}
提示错误:“名称空间'System.Data'中不存在类型或名称空间名称'oleDbType'(您是否缺少程序集引用?)”
而且,如果我删除System.Data.oleDbType.NVarChar,20,它可以正常工作,但是当我根据数据库的用户名和密码键入内容时,它会提示我登录失败。
Computer Name : Computer1
Username: com1
Password: 123456
f可能是这样的,创建连接,然后从访问文件中读取。
OleDbConnection conn;
OleDbCommand comm;
OleDbDataReader dr;
conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\\db1.mdb");
comm = new OleDbCommand("Select * from Table1 where loginId =@id and password=@pass",conn);
comm.Parameters.Add(new OleDbParameter("@id",System.Data.oleDbType.NVarChar,20, "loginID"));
comm.Parameters.Add(new OleDbParameter("@pass",System.Data.oleDbType.NVarChar,20, "password"));
conn.Open();
dr = comm.ExecuteReader();
conn.Close();
if(dr.hasrows)
{
//login success
}
else
//login fail
比起您可以通过对用户输入使用dr进行身份验证。 将其放在您的注释行上方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.