可以在不使用默認值屬性的情況下在代碼隱藏中對sqldatasource執行插入操作嗎?類似於爲參數提供一些鍵值集合並使用Insert()方法?可以插入使用sqldatasource沒有defaultvalue屬性?
我在問,因爲InsertParameters [x] .DefaultValue似乎在做(理論上當然)別的 - 我想重新定義標記,這是一個解決方法。
你知道一些其他的方式來做到這一點嗎?
可以在不使用默認值屬性的情況下在代碼隱藏中對sqldatasource執行插入操作嗎?類似於爲參數提供一些鍵值集合並使用Insert()方法?可以插入使用sqldatasource沒有defaultvalue屬性?
我在問,因爲InsertParameters [x] .DefaultValue似乎在做(理論上當然)別的 - 我想重新定義標記,這是一個解決方法。
你知道一些其他的方式來做到這一點嗎?
您必須使用插入事件,您將在其中形成插入的值。之後,您可以在需要的地方使用Insert()。
雖然DefaultValue方法看起來很奇怪,但實際上它會正常工作。其他地方很可能有問題。
你也說過你想改變背後的代碼控制。如果不使用DefaultValue
,您將無法直接輸入值。爲了避免該特定屬性,您需要創建該對象並填寫它。
這就是說,你問是否可以使用某種鍵值對來填充插入。你可以做到這一點的方法之一是沿
MyArray myArray = new MyArray();
myArray.add("FirstName", "John");
myArray.add("LastName", "Smith");
myArray.add("Address", "1234 Main St");
myArray.add("Phone", "123-456-786");
SqlDataSource sqlNames = New SqlDataSource(/* Conn */);
sqlNames.InsertCommand = "INSERT INTO [names] ([FirstName],[LastName],[Address],[Phone]) VALUES(@Fname, @Lname, @Address, @Phone)";
foreach (MyObject o in myArray) {
// Assuming an array of MyObject which has two members
sqlNames.InsertParameters.Add("@" + o.DBColumnName, o.Value);
}
sqlNames.Insert();
這是半僞碼線的東西,但是這對你想要做什麼的總體思路。使用HashTable,自定義對象數組等。
隨時尋求更多幫助。
做數據庫CRUD操作的「正確方法」是避免這個可怕的SqlDataSource組件,MS爲新手提供了簡單的拖放和配置功能。正確的方法是正確定義存儲過程,參數化的存儲過程,並通過後臺代碼或者從創建的DAL類庫中知道什麼時候以及何時執行。 –