2016-09-20 8 views
1
string sql = "Insert into tbl_borrowed (FirstName,LastName,BookName,Category,DateBorrowed,Time,DateToBeReturned) values (@fname,@lname,@bname,@category,@dborrow,@time,@dreturn)"; 
string sql2= "Insert into tbl_return (FirstName,LastName,BookName,Category,DateBorrowed,Time) values (@fname,@lname,@bname,@category,@dborrow,@time"; 

MySqlCommand sda = new MySqlCommand("", conn); 
sda.CommandType = CommandType.Text; 
sda.CommandText = sql; 
sda.Parameters.AddWithValue("@fname", txtfname.Text); 
sda.Parameters.AddWithValue("@lname", txtlname.Text); 
sda.Parameters.AddWithValue("@bname", txtbook.Text); 
sda.Parameters.AddWithValue("@category", cmbcategory.Text); 
sda.Parameters.AddWithValue("@dborrow", dateTimePicker1.Value.Date); 
sda.Parameters.AddWithValue("@time", this.time.Text); 
sda.Parameters.AddWithValue("@dreturn", dateTimePicker2.Value.Date);     

MessageBox.Show("Item has been added!"); 
showlv("Select * from tbl_borrowed", lvborrowed); 
showlv2("Select * from tbl_return", rb.lvreturn); 

txtfname.Clear(); 
txtlname.Clear(); 
txtbook.Clear(); 
cmbcategory.Clear(); 
dateTimePicker1.ResetText(); 
dateTimePicker2.ResetText(); 

try 
{ 
    conn.Open();       
    sda.CommandText = sql2; 
    sda.ExecuteNonQuery(); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("ASDF" + ex); 
} 
finally 
{ 
    conn.Close(); 
} 

同じ値を2つのテーブルに挿入したいとします。イム初心者、私を助けてください。私と一緒にクマ...同時に2つのテーブルに挿入するC#

ERROR:あなたのINSERTクエリTime

ERROR

+0

また、2番目のクエリで 'apts2'が挿入されていません:@string_return(FirstNa {SNIP}、@ dborrow、@ time)に挿入してください - –

+0

@JeroenvanLangen、そこには、まだ同じです。 – maklot

答えて

1

が予約語であり、以下のようにbacktique使用してエスケープする必要があります。ところで、あなたのINSERTの両方のステートメントにも同じ誤りがあります。

Insert into tbl_borrowed (FirstName,LastName,BookName,Category,DateBorrowed,`Time`,DateToBeReturned) 

繰り返しますが、それははるかにましだ代わりに、複数の INSERTその方法を実行するストアドプロシージャでこれらのクエリをラップします。コードからそのプロシージャを呼び出します。そうであれば、実際に INSERTの両方を同じトランザクションブロックで実行して、両方を begin transブロックにラップすることができます。

関連する問題