0
在我的asp項目中,我需要使用TVP將列表框中的所有項目列表寫入數據庫表格。我有列表框,存儲過程(通過TVP - 表值參數)。主要問題是傳遞DataTable是NULL,但Session不是。我會把你的代碼格式aspx.cs文件發給你(只有一個區塊,如果你需要更多,請告訴我)。如何將會話傳遞給DataTable?
protected void ASPxButton1_Click(object sender, EventArgs e)
{
//DataTable dts = Session["SelectedOptions"] as DataTable;
DataTable _dt;
//_dt = new DataTable("Items");
_dt = Session["SelectedOptions"] as DataTable;
_dt.Columns.Add("Id", typeof(int));
_dt.Columns.Add("Name", typeof(string));
foreach (ListEditItem item in lbSelectedOptions.Items)
{
DataRow dr = _dt.NewRow();
dr["Id"] = item.Value;
dr["Name"] = item.Text;
}
SqlConnection con;
string conStr = ConfigurationManager.ConnectionStrings["TestConnectionString2"].ConnectionString;
con = new SqlConnection(conStr);
con.Open();
using (con)
{
SqlCommand sqlCmd = new SqlCommand("TestTVP", con);
sqlCmd.CommandType = CommandType.StoredProcedure;
SqlParameter tvpParam = sqlCmd.Parameters.AddWithValue("@testtvp", _dt);
tvpParam.SqlDbType = SqlDbType.Structured;
sqlCmd.ExecuteNonQuery();
}
con.Close();
}
編輯
Thans爲您的解決方案,但我的主要問題仍然出現。在Session.Add(「SelectedOptions」,_dt); - _dt爲NULL。可能是什麼原因?在我之前發佈的代碼中,情況是一樣的。會話不爲空,它充滿了選定的項目,但DataTable爲空。我想這是不適合sesiion數據表.... – Marianna
你有沒有實現我的第二位代碼?僅僅因爲你的Session不爲空並不意味着'Session [「SelectionOptions」]'也不爲空。在我的代碼中,當你進入Session.Add(「SelectedOptions」,_dt)時,_dt不可能是null! – GarethD
是的,我實現了代碼的第二位,通過調試,_dt爲空。但會話[「SelectionOptions」] - 不是 – Marianna