2016-09-18 9 views
-1
private void btnadd_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     conn.Open(); 
     string sql = ("Insert into tbl_books values NameOfBook = @book, Author [email protected], [email protected],[email protected],[email protected],[email protected]"); 
     MySqlCommand sda = new MySqlCommand(sql,conn); 
     sda.Parameters.AddWithValue("@book", txtbook.Text); 
     sda.Parameters.AddWithValue("@author", txtauthor.Text); 
     sda.Parameters.AddWithValue("@publisher", txtpublisher.Text); 
     sda.Parameters.AddWithValue("@year", txtyear.Text); 
     sda.Parameters.AddWithValue("@category", cmbcategory.Text); 
     sda.Parameters.AddWithValue("@isbn", txtisbn.Text); 
     sda.ExecuteNonQuery(); 
     conn.Close(); 
     MessageBox.Show("Item has been added"); 
     showlv("Select * from tbl_books", lvbooks); 
    } 
    catch (Exception) 
    { 
     MessageBox.Show("Cannot Add Item"); 
    } 
} 

コードに問題がありますか?それはキャッチブロックに入るのを続ける。Sqlパラメータでエラーが発生しました

+1

は良い習慣ではありません。あなたが本当に少なくとも例外メッセージ(IE:_catch(Exception ex){MessageBox.Show(ex.Message);} _)を表示し、メッセージテキスト – Steve

+0

を教えてくださいあなた自身の構文/構造 – Plutonix

+0

私は申し訳ありません、私はちょうどlearning.thanksです! – maklot

答えて

1

SQLが壊れています。試してみてください:

try 
{ 
    conn.Open(); 
    string sql = "Insert into tbl_books (NameOfBook,Author,Publisher,YearPublished,Category,ISBN) values (@book,@author,@publisher,@year,@category,@isbn)"; 
    MySqlCommand sda = new MySqlCommand(sql,conn); 
    sda.Parameters.AddWithValue("@book", txtbook.Text); 
    sda.Parameters.AddWithValue("@author", txtauthor.Text); 
    sda.Parameters.AddWithValue("@publisher", txtpublisher.Text); 
    sda.Parameters.AddWithValue("@year", txtyear.Text); 
    sda.Parameters.AddWithValue("@category", cmbcategory.Text); 
    sda.Parameters.AddWithValue("@isbn", txtisbn.Text); 
    sda.ExecuteNonQuery(); 
    conn.Close(); 
    MessageBox.Show("Item has been added"); 
    showlv("Select * from tbl_books", lvbooks); 
} 

そしてはパラメータについて学ぶために時間を割いて、お客様にに感謝します。インラインSQLは、ハッカーのための最も魅力的なツールであり、最も恥ずかしくて簡単に修正できるセキュリティホールです!

注:あなたがTRYブロックにあなたCONNを持参し、リソースを節約するために使用して文の中でそれをラップすることもできます。役に立たないcatchブロックを書く

using(SqlConnection conn = getMyConnection()) 
    { 
    conn.Open(); 
    //blah 
    conn.Close(); 
    } 
+0

助けてくれてありがとう!できます!それはたくさんのことを意味します! – maklot

+0

喜んで助けてください - 我々はすべてそこにいた。乾杯! –

関連する問題