0

これは私の検索ボタンです:

private void btnSearch_Click(object sender, EventArgs e)
    {
        string RegNo = txtRegNo.Text;
        txtFname.Text = dba.ReturnStudentData("RegNo", "Student", RegNo, "PhoneNo");
        txtLname.Text = dba.ReturnStudentData("RegNo", "Student", RegNo, "Lname");
        txtPhoneNo.Text = dba.ReturnStudentData("RegNo", "Student", RegNo, "PhoneNo");

    }

これは私の DB_Access です:

public string ReturnStudentData(string Primary_key, string Table_Name, string RegNo, string Column)
    {
        string temp = "";
        if (conn.State.ToString() == "Closed")
        {
            conn.Open();
        }
        SqlCommand newCmd = conn.CreateCommand();
        newCmd.CommandType = CommandType.Text;
        newCmd.CommandText="SELECT"+Column+"FROM"+Table_Name+"WHERE"+Primary_key+"="+RegNo+"";
        SqlDataReader dr = newCmd.ExecuteReader(); **// here i got error**

        while(dr.Read())
        {
            temp = dr[Column].ToString();
        }
        dr.Close();
        conn.Close();
        return temp;
    }

これは上記の私のコードです。DBを検索中にエラーが発生しました.プライマリ番号を意味します..誰か助けてください..

4

1 に答える 1

3

まず、SQLコマンドにスペースを追加する必要があります

newCmd.CommandText="SELECT "+Column+" FROM "+Table_Name+" WHERE "+Primary_key+"="+RegNo+"";

そうでなければ、あなたはそのようなものを得るでしょう:

SELECTcolumnt1,column2FROMmyTableWHEREKey=123

それ以外の:

SELECT columnt1,column2 FROM myTable WHERE Key=123

次に、newCmd.CommandTextを出力して、最終的なクエリを確認します。

于 2013-03-03T13:40:50.143 に答える