0
StudentID > Number

StudentName > Text

StudentCNIC > Text

StudentDOB > Date/Time

我正在尝试创建一个搜索文本框,结果显示在文本框中。我有一个名为 FindBtn 的按钮,用户可以在其中输入 StudentID、Student Name 或 Student CNCI(只是疼痛号码)。结果随后显示在文本框中...StudIDTb(显示学生 ID)、StudNameTb(显示学生姓名)、StudCNCITb(显示学生 CNCI)和 StudDOBTb(显示学生 DOB)。

我在互联网上看到的很多示例都使用 gridview,但我使用文本框来显示结果。我发现感兴趣的是...

这里 这里这里_

    public Form1()
    {
        InitializeComponent();
        //Connection String for Access 2003. 
        myCon = new OleDbConnection(@" Provider=Microsoft.Jet.OLEDB.4.0;Data 
        Source=C....\StudDB.mdb ");
    }

    private void Form1_Load(object sender, EventArgs e)
    {

        this.studentsTableAdapter.Fill(this.studDBDataSet.Students);
    }

在 FindBtn 函数中做了以下......

    private void FindBtn_Click(object sender, EventArgs e)
    {
        string title = textBox1.Text.ToString();
        if (title != "")
        {
            string queryString = "SELECT * FROM Students + title;
            //I need help here
            StudIDTb.Text = queryString;
            StudNameTb.Text = queryString;
            StudCNCITb.Text = queryString;
            StudDOBTb.Text = queryString;
        }
        else
            MessageBox.Show("Please try again\nError: ");
    }

结果表明......

SELECT *
FROM Students 103

在每个文本框和 exe 冻结,所以显然这是错误的。请有人可以在这里帮助我,在此先感谢。

更新 1 我在字符串变量之前包含了 OleDbCommand、CommandType 和打开连接,这可以防止屏幕冻结,但它不能解决问题

更新 2找到了我喜欢的东西,但在这里 不起作用

更新 3

作为C Sharp Corner,请提供一段代码....

 private void btnFind_Click(object sender, EventArgs e)
    {
        string title = textBox1.Text.ToString();
        string queryString = "SELECT * FROM Students" + title;
        OleDbCommand command = new OleDbCommand();
        command.CommandText = queryString;

        command.Connection = myCon;
        myCon.Open();

        OleDbDataReader dr = command.ExecuteReader();
        while (dr.Read())
        {
             StudIDTb.Text += String.Format("Student ID:                
             {0}\n",dr["StudID"].ToString());
            StudNameTb.Text += String.Format("StudentName ID: {0}\n", 
            dr["StudentName"].ToString());
            StudCNCITb.Text += String.Format("StudentCNIC: {0}\n", 
            dr["StudentCNIC"].ToString());
            StudDOBTb.Text += String.Format("StudentCNIC: {0}\n", 
            dr["StudentCNIC"].ToString());
        }
        myCon.Close();

修改格式后收到错误消息....

“Microsoft Jet 数据库引擎找不到输入表或查询‘Students101’。确保它存在并且其名称拼写正确”。

我现在正在查看它以了解它的含义

4

1 回答 1

2

这是一个应该工作的示例(如果您包含 oledbcommand、commandtype 等也更新您的代码,以便我们可以看到您所做的更改):

OleDbCommand command = new OleDbCommand();
command.CommandText = queryString;
command.Connection = myCon;
myCon.Open();
OleDbDataReader dr = command.ExecuteReader();
while(dr.Read())
{
   StudIDTb.Text += dr["StudID"].ToString();
   StudNameTb.Text += dr["StudName"].ToString();
   StudCNCITb.Text += dr["StudCNCI"].ToString();
   StudDOBTb.Text += dr["StudDOB"].ToString();
}
myCon.Close();
于 2013-03-09T18:52:29.707 回答