我尝试通过json或jquery ajax从web服务获取双重DataTable,如
WebService方法:
[WebMethod]
public DataSet FareAccpted_(string custId)
{
DataSet ds = new DataSet();
List<fareAccptedList> details = new List<fareAccptedList>();
using (SqlConnection con = new SqlConnection("..."))
{
using (SqlCommand cmd = new SqlCommand("proc_FareAcceptedC", con))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@customerId", SqlDbType.Int).Value = custId;
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
}
}
return ds;
}
Js页面:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "../lpService.asmx/FareAccpted_",
data: JSON.stringify({ custId: custId_ }),
dataType: "json",
success: function (data) {
alert('Length : '+data.d.length)
},
error: function (result) {
alert("FareAcceptedC" + "Error");
}
});
DataTables存储在DataSet中。
答案 0 :(得分:0)
首先,您的$ .ajax调用是错误的,特别是您通过custId_
参数的方式。此外,POST调用中未使用dataType
,也可以排除contentType
。
更改您的$ .ajax调用,您现在可以在[WebMethod]
中找到一个断点:
$.ajax({
type: "POST",
url: "../lpService.asmx/FareAccpted_",
data: { "custId": custId_ },
success: function (data) {
alert('Length : ' + data.d.length)
},
error: function (result) {
alert("FareAcceptedC" + "Error");
}
});
其次,看看你实例化SqlConnection
对象的方式:
using (SqlConnection con = new SqlConnection("..."))
&#34; ...&#34;不是有效的连接字符串。您需要将连接字符串存储在Web.config
文件中的SQL数据库中,如下所示:
<connectionStrings>
<add name="connectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=UsersDatabase;Data Source=MyServerName"/>
</connectionStrings>
并从C#代码访问它,如下所示:
string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(connectionString))
{
}