我試圖使用方法更新數據庫,將使用該方法的參數,而不是使用SQL語句。我這樣做是爲了讓用戶可以在數據庫中輸入信息。在.net中更新數據庫方法
System.Data.OleDb.OleDbConnection con;
DataSet dsl;
System.Data.OleDb.OleDbDataAdapter da;
public String updateDatabase(int id, String Fname, String Lname, int age, string job)
{
con = new System.Data.OleDb.OleDbConnection();
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\Owner\\Documents\\CIS3052.mdb";
dsl = new DataSet();
da = new System.Data.OleDb.OleDbDataAdapter();
con.Open();
DataRow dRow = dsl.Tables["Employee"].NewRow();
dRow["ID"] = id;
dRow["Fname"] = Fname;
dRow["Lname"] = Lname;
dRow["Age"] = age;
dRow["Job"] = job;
dsl.Tables["Employee"].Rows.Add(dRow);
da.Update(dsl, "Employee");
return null;
}
我的問題是,在這條線:
DataRow dRow = dsl.Tables["Employee"].NewRow();
它告訴我:
對象引用不設置到對象的實例。
我試過使用da.Fill()
,但我找不到一種方式來使用它,而不使用SQL語句。
謝謝。
所以,如果我必須使用SQL插入,我將如何做聲明來接受方法的參數,而不必添加預置數據。 – Dumingu 2012-01-17 12:24:17
http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx命令文本可以是存儲過程或sql語句。在sql語句的情況下,所有的參數必須在sql語句中用@定義。 var SQL =「更新myTable設置myColumn = @columevalue」。現在,您需要使用@columevalue在命令對象中添加一個sql參數。 – Mahesh 2012-01-17 12:40:13