ObjectDatasourceを使用してテキストボックスからデータを挿入したいとします。 ObjectDataSourceはグリッドビューにバインドされていますが、特定の計算列のみを表示します。テキストボックスは、すべての基本入力を入力するために使用されます。 ObjectDatasource Delete &選択コマンド(グリッドビューのリンクボタン)が機能しています。しかし、私はInsertコマンドに問題があります。私はObjectDataSourceの挿入にパラメータとしてテキストボックスからデータを渡す方法を把握できませんObjectDatasource渡すパラメータ
EDIT:以下のコードでは、レコードが挿入されています。パラメータが渡されています。 odssMain.Insert()は、エラー: "オブジェクト参照がオブジェクトのインスタンスに設定されていません"を返します。 編集:このエラーはなぜ発生しますか?
また、ObjectDataSourceは奇妙な動作をしています。エラーが発生したら、メソッドが空白になるため、ODSウィザードでInsertメソッドを再設定する必要があります。
ASP.NET 3.5 & SQL 2008、VS 2008
はここに私のコードです:
<asp:ObjectDataSource ID="odsMain" runat="server"
SelectMethod="SelectMain" DeleteMethod="DeleteMain"
InsertMethod="InsertMain" UpdateMethod="UpdateMain"
OldValuesParameterFormatString="original_{0}" TypeName="MainDB" >
.......
<InsertParameters>
<asp:Parameter Name="Quantity" Type="Int32" />
</InsertParameters>
DAL FILE:
[DataObjectMethod(DataObjectMethodType.Insert)]
public static int InsertMain(int Quantity)/
{
SqlConnection con = new SqlConnection(GetConnectionString());
string strQuery = "INSERT INTO t_Main (Quantity) VALUES (@Quantity)";
SqlCommand cmd = new SqlCommand(strQuery, con);
cmd.Parameters.AddWithValue("@Quantity", Quantity);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
return i;
}
CODE BEHIND FILE:
protected void btnSaveAnalysis_Click(object sender, EventArgs e)
{
odsMain.InsertParameters.Clear();
//Store parameters with values to the collection
odsMain.InsertParameters.Add(new Parameter ("Quantity", TypeCode.Int32, iQuantity.ToString()));
//Diferent ways that I tried. Still not working
//odsMain.InsertParameters.Add("Quantity", iQuantity.ToString());
//odsMain.InsertParameters["Quantity"].DefaultValue = iQuantity.ToString();
odsMain.Insert();
}
...このようなものです。 – user450143
しかし、Customer.InsertParameters ["FirstName"]という行。DefaultValue = strFirstNameが私に実行時エラーを与えていました。 – user450143