【发布时间】:2018-03-29 02:48:30
【问题描述】:
我正在使用 ASP MVC 和存储过程 (SQL Server) 开发一个项目,我想将选中的复选框项目存储在数据库中。我尝试在模型中添加List<string> 类型,以便访问这些值,然后将它们存储在数据库中。
关系数据库专门设计为每行/列组合存储一个值的问题。为了存储多个值,我必须将我的列表序列化为一个值进行存储,然后在检索时将其反序列化。
这是我的视图标记:
<h6>Items</h6>
<ul>
<li>
<label class="anim">
<input type="checkbox" class="checkbox" value="Soups" name="Items">
<span>Soups</span>
</label>
</li>
<li>
<label class="anim">
<input type="checkbox" class="checkbox" value="Burger" name="Items" >
<span>Burger</span>
</label>
</li>
<li>
<label class="anim">
<input type="checkbox" class="checkbox" value="Drinks" name="Items">
<span>Drinks</span>
</label>
</li>
<li>
<label class="anim">
<input type="checkbox" class="checkbox" value="Desserts" name="Items">
<span>Desserts</span>
</label>
</li>
</ul>
方法AddBestellung:
try
{
using (SqlConnection con = new SqlConnection(Connection()))
{
using (SqlCommand cmd = new SqlCommand("AddNewBestellung", con))
{
foreach(var item in bs.Items)
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Items", item);
}
// Another saved parameters...
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
if (i >= 1)
return true;
else
return false;
}
}
}
catch(Exception ex)
{
string e = ex.Message;
return false;
}
private static string Connection()
{
return ConfigurationManager.ConnectionStrings["deliverycon"].ToString();
}
型号:
public List<string> Items { get; set; }
【问题讨论】:
-
你可以尝试使用标志枚举msdn.microsoft.com/en-us/library/…
-
实际上,由于您使用的是 SQL Server,您还可以将复选框值数组存储为 XML。
-
以及 sql 数据类型如何
-
@RichBryant 谢谢,但你能解释一下它是如何作为 XML 的
-
好的,我会把这两个选项都作为答案,你可以试试。
标签: c# sql-server asp.net-mvc stored-procedures