2013-03-03 55 views
0

這是我的搜索按鈕:未處理的SQL異常'='附近的語法不正確?

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就把主號碼means..can任何人幫助我,我得到了錯誤..

+1

打印出newCmd的內容以查看您要執行的語句。比請把這個添加到你的問題。 – smartmeta 2013-03-03 13:38:26

+0

RegNo = null ???要麼 」」 ??? – Mortalus 2013-03-03 13:39:14

+0

Reg No is not null .. – SDR 2013-03-03 13:41:20

回答

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看到什麼是最終的查詢。

+0

是的mort thanks感謝我得到它.. – SDR 2013-03-03 13:46:38