2012-11-03 137 views
0

我試圖使用SQL Server數據庫來執行我的登錄表單..但我得到一個錯誤說問題:SQLEXCEPTION了未處理

附近有語法錯誤

在那裏我得到了錯誤的路線是:

objda.Fill(objds, "adm"); 

,我的代碼是:

public partial class Form1 : Form 
{ 
    int total; 
    SqlConnection objc; 
    string c = "data source=.; initial catalog=student; integrated security=SSPI"; 
    SqlDataAdapter objda; 
    DataSet objds; 
    SqlCommand objcmd; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (objc != null) 
     { 
      objc.Open(); 
     } 
     objcmd = new SqlCommand("select * form adm where Name= ' " + textBox1.Text + "',pass = ' " + textBox2.Text + "'", objc); 
     if (objc != null) 
     { 
      objc.Close(); 
     } 
     objc = new SqlConnection(c); 
     objcmd = new SqlCommand("search * from adm", objc); 
     objda = new SqlDataAdapter(objcmd.CommandText, objc); 
     objds = new DataSet(); 
     objda.Fill(objds, "adm"); 

     total = Convert.ToInt32(objds.Tables["adm"].Rows.Count); 
     if (total > 0) 
     { 
      MessageBox.Show("welcome"); 
      Class1.login = textBox1.Text; 
      Form2 f2 = new Form2(); 
      this.Hide(); 
      f2.Show(); 
     } 
     else 
     { 
     } 

我該怎麼辦?

問題在哪裏?

+0

這個問題表明,沒有搜索或嘗試已經進行詢問之前完成。 –

回答

0

您忘記了在兩個條件之間放置「And」並且拼寫爲form關鍵字。

objcmd = new SqlCommand("select * from adm where Name= '" + textBox1.Text + "' And pass = '" + textBox2.Text + "'", objc); 

由你應該使用的方式parametersavoid sql injection漏洞

+1

當然,從安全性和性能的角度來看,使用**參數化查詢**而不是將您的完整SQL語句連接在一起將會**很多。 .. –

+0

@marc_s:是的,我在我的答案中提到過,但由於問題是關於查詢中的錯誤,我沒有實現它。 –

+0

我仍然收到同樣的錯誤! 我現在確實使用參數 – user1796074

1

除了SQL注入漏洞,缺少using語句,以及明顯不正確的語法(遺漏,加上mispelt FROM):

你忘了打開連接。

-3
objcmd = new SqlCommand("select * form adm where Name= ' " + textBox1.Text + "',pass = ' " + textBox2.Text + "'", objc); 

它應該是:

objcmd = new SqlCommand("select * from adm where Name= ' " + textBox1.Text + "',pass = ' " + textBox2.Text + "'", objc); 
+1

這仍然是無效的SQL –

0

你必須打開連接再次

objc.Open(); 

,並更改

select * form 

select * from 

此外AND丟失。

+0

不是已經打開的對象...實際上,我嘗試了簡單的objc.open();但它會顯示NULLReference異常未處理的錯誤 – user1796074