1
このメソッドをASP.NetのRazorでAJAXから実行しようとしています。私は目に見えるエラーはありませんが、実行しようとするたびにこれが私に送られます。このような方法が完璧に走っています。しかし、私は何かが足りないと思う。System.Data.dllでSqlExceptionが発生しましたが、ユーザーコードで処理されませんでした
は、これは、あなたのコマンドが設定してはならないプレーンテキストのSQLコマンドである場合は、ストアド・プロシージャを実行したいときは、CommandType.StoredProcedureを使用して、私のC#メソッド
[WebMethod]
public JsonResult GetDeparments()
{
string cs = "Data Source=DMX87025;Initial Catalog=DB_PCC;Integrated Security=True";
string sql = "SELECT * FROM[DB_PCC].[dbo].[Departments]";
List<Departments> departaments = new List<Departments>();
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand(sql , con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataReader rdr = cmd.ExecuteReader(); //unhandled expection here
while (rdr.Read())
{
Departments dep = new Departments();
dep.Id = Convert.ToInt32(rdr["Id"]);
dep.Code = rdr["Code"].ToString();
dep.Description = rdr["Description"].ToString();
departaments.Add(dep);
}
}
JavaScriptSerializer js = new JavaScriptSerializer();
return Json(new { success = true, message = (js.Serialize(departaments)) },
JsonRequestBehavior.AllowGet);
}
選択コマンドはStoredProcedureではありません。 CommandTypeを設定する行を削除する – Steve
その上に 'SqlConnection'だけでなく' using'を適用し、asp.net mvcでは不要な '[WebMethod]'を削除し、 'departments'を割り当てます手動でJavaScriptSerializerを使用せずに直接(jsonレスポンスの一部だけをシリアライズしていると気にしませんでしたか?) – GSerg