Javascript 如何使用mvc3从数据库中删除数据?
我不熟悉Json数据类型。如何检索它。。请看下面的代码 这是我的Javascript代码:Javascript 如何使用mvc3从数据库中删除数据?,javascript,json,asp.net-mvc-3,delete-row,Javascript,Json,Asp.net Mvc 3,Delete Row,我不熟悉Json数据类型。如何检索它。。请看下面的代码 这是我的Javascript代码: function fnDeleteSelected() { var count_checked = $("[name = 'myChkBox[]']:checked").length; var arrayOfID = []; $(':[name = "myChkBox[]"]:checked').each(f
function fnDeleteSelected() {
var count_checked = $("[name = 'myChkBox[]']:checked").length;
var arrayOfID = [];
$(':[name = "myChkBox[]"]:checked').each(function () {
arrayOfID.push($(this).val());
});
var test = JSON.stringify(arrayOfID);
alert(test);
if (count_checked == 0) {
alert("Please Select a Student to delete");
return false;
}
else {
var confirmDel = confirm("Are you sure you want to delete this?");
if (confirmDel == true) {
jQuery.ajax({
url: baseUrl + "DeleteSelected/",
type: 'Post',
dataType: 'Json',
data: { Parameters: test },
success: function (msg) {
jQuery("input:checkbox:checked").parents("tr").remove();
}
});enter code here
}
}
}
这里发送给控制器的数据是参数,其中参数=[“143”、“144”、“145”]
我的控制器是:其中参数以“[\“143\”,“144\”,“145\”]的形式传递。我的问题是如何解析参数,以便将其嵌入sql语句中
public JsonResult DeleteSelected(string [] Parameters)
{string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
SqlConnection conn = new SqlConnection(strConn);
string strSql = "DELETE FROM dbStudent where ID in";
SqlCommand myCommand = new SqlCommand(strSql, conn);
try
{
conn.Open();
myCommand.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return Json(Parameters, JsonRequestBehavior.AllowGet);
}
strSql中应该有什么?您可以将数组转换为int数组
int[] myInts = Parameters.Select(int.Parse).ToArray();
然后
您可以将ajax帖子更改为:(contentType很重要) 你的行动方法是什么
public JsonResult DeleteSelected(int[] Parameters)
{
string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
SqlConnection conn = new SqlConnection(strConn);
var strSql = "DELETE FROM dbStudent where ID IN (" + String.Join(",", Parameters) + ")";
SqlCommand myCommand = new SqlCommand(strSql, conn);
try
{
conn.Open();
myCommand.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return Json(Parameters, JsonRequestBehavior.AllowGet);
}
我建议使用类似ORM的实体框架。它更易于使用,而且您不必为SQL注入等清理每个输入。是的,这将更容易,但我被要求以上述格式执行。。所以,你能帮我一下吗?我收到一个错误,说输入字符串的格式不正确,你哪里出错了?将字符串形式的值。Join(“,”,myInts)放在一个字符串变量中,通过Debugger查看值是什么。我只想将“[\“143\”,“144\”,“145\”]”更改为sql语句可以接受的int。请帮助尝试至少使用列表而不是字符串数组?谢谢,但我已经解决了它。。我比较了我们的答案,结果有点相似。。。哈哈哈,当我们心情不好的时候,小错误是看不见的。但我已经头脑风暴并完成了。再次感谢你的回答
jQuery.ajax({
url: baseUrl + "DeleteSelected/",
type: 'Post',
dataType: 'json',
data: JSON.stringify(arrayOfID),
contentType: 'application/json; charset=utf-8',
success: function (msg) {
jQuery("input:checkbox:checked").parents("tr").remove();
}
});
public JsonResult DeleteSelected(int[] Parameters)
{
string strConn = "Data Source=localhost;Initial Catalog=Information;Integrated Security=SSPI;";
SqlConnection conn = new SqlConnection(strConn);
var strSql = "DELETE FROM dbStudent where ID IN (" + String.Join(",", Parameters) + ")";
SqlCommand myCommand = new SqlCommand(strSql, conn);
try
{
conn.Open();
myCommand.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return Json(Parameters, JsonRequestBehavior.AllowGet);
}