2

ユーザーが.sdfを使用してログインできるようにするアプリケーションを作成しようとしていますが、インターネット上にはこれについてはあまりありません。

本当にいくつかのポインタで行うことができます。

これは私が現在持っているものですが、各テキストボックスに何を入力しても、リダイレクトされるので、混乱の山だと思いますForm2(これはちょっと予想されます)。どこかにifステートメントが必要なことはわかっていますが、実装方法がわかりません。

  private void Login_Click(object sender, EventArgs e)
  {
     using (SqlCeConnection yourConnection = new SqlCeConnection("Data Source=C:\\Users\\Username\\Documents\\Databases\\New Folder\\Login.sdf"))
     {
          string query = "SELECT * FROM tbl_employees where Username like '" + textBox1.Text + "' AND Password like '" + textBox2.Text +"'";
          SqlCeDataAdapter dA = new SqlCeDataAdapter(query, yourConnection);
          SqlCeCommandBuilder cBuilder = new SqlCeCommandBuilder(dA);

          this.Hide();
          Form2 secondForm = new Form2();
          secondForm.ShowDialog();
     }
 }      
4

2 に答える 2

1

まず、SQL Server CEデータベース、つまり.sdfファイルは単なる別のストレージファイルです。これは、SQLServerの非常に軽量でポータブルなバージョンです。

ただし、せいぜい、コードとロジックはSQLServerのものと似ています。ただ異なるクラス。つまりSqlCeConnectionSqlCeCommandなど。

connectionString次に、自分が正しいことを確認する必要があります。

string connectionString ="data source=physical path to .sdf file; 
                         password=pwdThtUSet; persist security info=True";

using (SqlCeConnection yourConnection = new SqlCeConnection(connectionString))
{
       ....your logic
}

likeここで、ユーザー名とパスワードの組み合わせが一致する行を検索するクエリでは、完全に一致する必要があるため 、検索しないでください。

だからそれは次のようにします:

     string query = "SELECT * FROM tbl_employees where Username ='" + textBox1.Text + "' AND Password ='" + textBox2.Text +"'";
      SqlCeDataAdapter dA = new SqlCeDataAdapter(query, yourConnection);
      DataTable dt = new DataTable();
      dA.Fill(dt);

      if(dt.Rows.Count>0)
      {
          this.Hide();
          Form2 secondForm = new Form2();
          secondForm.ShowDialog();
      }
于 2013-03-24T22:02:54.970 に答える
0

ログイン基準が満たされた後にのみこれを試してください。

if (usernametextbox.Text.Equals("form2username", StringComparison.InvariantCultureIgnoreCase)) {
  // code for redirection to form2
  Hide();
  con.Close();
} else {
  if (usernametextbox.Text.Equals("form3username", StringComparison.InvariantCultureIgnoreCase)) {
    // code for redirection to form3
    Hide();
    con.Close();
  }
}
于 2017-03-12T12:59:52.713 に答える