Javascript 为什么;系统索引自动失效例外“;在使用ASP.Net的ajax中对字符串发生?
事实上,如果我删除一个特定的Javascript 为什么;系统索引自动失效例外“;在使用ASP.Net的ajax中对字符串发生?,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,事实上,如果我删除一个特定的字符串变量,我的ajax代码工作得非常好 我调用ajax,然后服务器将从SQLServer中提取一些数据并将其存储到字符串变量中。除一个变量外,每个变量都能完美返回。当我检查控制台时,它返回异常“System.IndexOutOfRangeException” 这是我的ajax代码 $('.list-of-link').on('click', 'a', function (e) { e.preventDefault();// add this line
字符串
变量,我的ajax代码工作得非常好
我调用ajax,然后服务器将从SQLServer中提取一些数据并将其存储到字符串变量中。除一个变量外,每个变量都能完美返回。当我检查控制台时,它返回异常“System.IndexOutOfRangeException”
这是我的ajax代码
$('.list-of-link').on('click', 'a', function (e) {
e.preventDefault();// add this line
alert($(this).html());
//window.location.replace("ReportTotalSalesPivot.aspx");
var userFileName = $(this).html();
$.ajax({
url: 'SavedReports.aspx/getReportDetails',
method: 'post',
contentType: 'application/json',
data: '{userFileName:"' + userFileName + '"}',
dataType:'json',
success: function (data) {
alert('success : ReportData = ' + data.d.ReportData);
},
error: function (error) {
alert('Please Call Administrator');
}
})
})
WebMethod代码
[WebMethod]
public static SavedReport getReportDetails(string userFileName)
{
string cs = ConfigurationManager.ConnectionStrings["HQWebMatajer13"].ConnectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select ReportData,ReportFilter,FromDate,ToDate,SelectedData,SelectedCoulmn,SelectedRow,HiddenTableRecord ToDate FROM [HQWebMatajer].[dbo].[ReportSave] where UserID=@UserID and UserFileName=@UserFileName";
cmd.Parameters.AddWithValue("@UserID", UserID);
cmd.Parameters.AddWithValue("@UserFileName", userFileName);
con.Open();
SavedReport savedReport = new SavedReport();
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
byte[] binaryString = (byte[])rd["ReportData"];
savedReport.ReportData = Encoding.UTF8.GetString(binaryString);
savedReport.ReportFilter = rd["ReportFilter"].ToString();
savedReport.FromDate = rd["FromDate"].ToString();
savedReport.ToDate = rd["ToDate"].ToString();
savedReport.SelectedData = rd["SelectedData"].ToString();
savedReport.SelectedColumn = rd["SelectedCoulmn"].ToString();
savedReport.SelectedRow = rd["SelectedRow"].ToString();
savedReport.HiddenTableRecord = rd["HiddenTableRecord"].ToString();
}
return savedReport;
}
}
最后一个变量出现错误HiddenTableRecord
以下记录是来自SQL Server('1001')$$$中的tq.StoreID$$的HiddenTableRecord
的实际记录
SavedReport类别代码
public class SavedReport
{
public string UserID { get; set; }
public string ReportName { get; set; }
public string UserFileName { get; set; }
public string ReportData { get; set; }
public string ReportFilter { get; set; }
public string FromDate { get; set; }
public string ToDate { get; set; }
public string SelectedData { get; set; }
public string SelectedColumn { get; set; }
public string SelectedRow { get; set; }
public string HiddenTableRecord { get; set; }
}
错误消息
{消息:“HiddenTableRecord”,…}
异常类型:“System.IndexOutOfRangeException”
消息:“HiddentTableRecord”
注意
$('.list-of-link').on('click', 'a', function (e) {
e.preventDefault();// add this line
alert($(this).html());
//window.location.replace("ReportTotalSalesPivot.aspx");
var userFileName = $(this).html();
$.ajax({
url: 'SavedReports.aspx/getReportDetails',
method: 'post',
contentType: 'application/json',
data: '{userFileName:"' + userFileName + '"}',
dataType:'json',
success: function (data) {
alert('success : ReportData = ' + data.d.ReportData);
},
error: function (error) {
alert('Please Call Administrator');
}
})
})
如果我注释这一行savedReport.hiddentablecord=rd[“hiddentablecord”].ToString()代码>。错误没有发生,它返回我期望的所有记录
出现问题的原因是SqlDataReader
不包含“hiddentablecord”
您的SqlRequest中可能存在问题(示例中HiddenTableRecord和ToDate之间缺少逗号):
“从[HQWebMatajer].[dbo].[ReportSave]中选择ReportData、ReportFilter、FromDate、ToDate、SelectedData、SelectedCoulmn、SelectedRow、HiddenTableRecord,ToDate,其中UserID=@UserID和UserFileName=@UserFileName;” 没有阅读任何东西,人们都会给负面评价。人们现在应该给出有效的理由我想这是你查询中的问题:,hiddentablecordtodate
,你错过了逗号iguess@ehsansajjad倒霉。。请稍候,让我检查。@ehsansajjad正确。倒霉。我是怎么做到的。我找了一半的东西,有时会发生:)