Access 2003 VS 2010 C#
WHERE 句に問題があります。最初は OR を使用していましたが、今では WHERE と関係があるに違いないことに気付きました。誰かがここで私を助けてください。前もって感謝します。ps c 鋭い学生が以前私を助けてくれました。
学生テーブル
フィールド名のデータ型
ID Number
FirstName Text
LastName Text
StudentDOB Date/Time
Course Text
接続文字列:
myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\...\StudentDB.mdb");
btnFind メソッド...
private void btnFind_Click(object sender, EventArgs e)
{
string title = txtSearch.Text.ToString();
string queryString = "SELECT * FROM StudentTable WHERE ID = ?"; //I have also tried WHERE ID = @ID without success
OleDbCommand command = new OleDbCommand();
command.CommandText = queryString;
command.Connection = myCon;
myCon.Open();
OleDbDataReader dr = command.ExecuteReader();
while (dr.Read())
{
txtStudID.Text += String.Format("ID: {0}\n", dr["ID"].ToString());
txtFirstName.Text += String.Format("FirstName: {0}\n", dr["FirstName"].ToString());
txtLastName.Text += String.Format("LastName: {0}\n", dr["LastName"].ToString());
txtStudDOB.Text += String.Format("StudentDOB: {0}\n", dr["StudentDOB"].ToString());
txtCourse.Text += String.Format("Course: {0}\n", dr["Course"].ToString());
}
myCon.Close();
}
私の削除方法はこれで、問題はありません(知りたいと思いました)...
private void btnDelete_Click(object sender, EventArgs e)
{
OleDbCommand cmd = new OleDbCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "DELETE FROM StudentTable WHERE txtStudID = ?";
cmd.Parameters.AddWithValue("@ID", txtStudID.Text);
cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text);
cmd.Parameters.AddWithValue("@LastName", txtLastName.Text);
cmd.Parameters.AddWithValue("@StudDOB", txtStudDOB.Text);
cmd.Parameters.AddWithValue("@Course", txtCourse.Text);
cmd.Connection = myCon;
myCon.Open();
cmd.ExecuteNonQuery();
myCon.Close();
}
Accessで問題なくSQLクエリをテストしました...
SELECT StudentTable.ID
FROM StudentTable
WHERE (((StudentTable.ID)=1));
解決策が見つかりました
もちろん、stackoverflowから、このリンクから解決策を見つけました....
貴重な時間をありがとう、特にブラッド。
ブラッド - これがコードです
private void btnFind_Click(object sender, EventArgs e)
{
using (var command = myCon.CreateCommand())
{
command.CommandText = "select * from StudentTable where ID = @ID";
command.Parameters.AddWithValue("ID", int.Parse(txtSearch.Text));
myCon.Open();
var reader = command.ExecuteReader();
while (reader.Read())
{
txtStudID.Text = reader["ID"].ToString();
txtFirstName.Text = reader["FirstName"].ToString();
txtLastName.Text = reader["LastName"].ToString();
txtStudDOB.Text = reader["StudentDOB"].ToString();
txtCourse.Text = reader["Course"].ToString();
}
} myCon.Close();
myCon.Close();
}
実際にはOR句を使用しない場合があります-これで十分です。