Привязка данных в WPF (C #) - PullRequest
2 голосов
/ 20 июля 2010

извините за причиненные неудобства.

Хотел бы спросить о базе данных или, скорее, о привязке данных

Мое окно выглядит так: 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);
}
}

Ошибка подсказки: «Имя типа или пространства имен« oleDbType »не существует вПространство имен 'System.Data' (вам не хватает ссылки на сборку?) "

И если я удаляю System.Data.oleDbType.NVarChar, 20, это прекрасно работает, но когда я печатаю в соответствии с моей базой данныхв моем имени пользователя и пароле, это побуждает меня Войти Не удалось .. EG:

Computer Name : Computer1
Username: com1
Password: 123456

1 Ответ

0 голосов
/ 20 июля 2010

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 для ввода данных пользователем.Поместите это выше вашей закомментированной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...