2013-03-03 26 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