【发布时间】:2010-04-15 21:09:17
【问题描述】:
当我只查询一个记录/行时,sqldatareader 给出正确的结果,但是当我查询多行时,它在客户端给出错误。下面是我的代码。请告诉我这里有什么问题。
[WebMethod]
public static string SendMessage(string order)
{
string Server = "alyeyey";
string Username = "apjsjsjs";
string Password = "jjsjsjs";
string Database = "Amhshshs";
string ConnectionString = "Data Source=" + Server + ";";
ConnectionString += "User ID=" + Username + ";";
ConnectionString += "Password=" + Password + ";";
ConnectionString += "Initial Catalog=" + Database;
string query = "select * from optionsRelation where orderNumber = " + order;//+" OR orderNumber = 17";
DataTable dt = new DataTable();
Hashtable sendData = new Hashtable();
try
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(query, conn))
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
dt.Load(dr);
}
}
//Creating StringBuilder array for storing keys
StringBuilder[] empKeys = new StringBuilder[4];
for (int i = 0; i < empKeys.Length; i++)
{
empKeys[i] = new StringBuilder();
}
//Creating stringbuilder array for storing key values
StringBuilder[] empDetails = new StringBuilder[4];
for (int i = 0; i < empDetails.Length; i++)
{
empDetails[i] = new StringBuilder();
}
//putting datatable data to Keys array i-e empKeys and Values array i-e empDetails array
int inc = 0;
int j = 0;
foreach (DataRow dr in dt.Rows)
{
foreach (DataColumn dc in dt.Columns)
{
empKeys[inc].Append(dc.ColumnName);
inc++;
}
foreach (DataColumn dc in dt.Columns)
{
empDetails[j].Append(dr[dc]);
j++;
}
}
//mapping keys array and values array in hashtable
for (int k = 0; k < empKeys.Length; k++)
{
sendData.Add(empKeys[k].ToString(), empDetails[k].ToString());
}
//sendData.Add("orderNum", order);
JavaScriptSerializer jss = new JavaScriptSerializer();
string output = jss.Serialize(sendData);
return output;
}
catch (Exception ex)
{
return ex.Message + "-" + ex.StackTrace;
}
}
}
【问题讨论】:
-
请说明您遇到的错误。
-
浏览器出现错误错误:预期为 ']'
-
不要使用字符串连接来构建您的查询!而且,是的,我在对你大喊大叫。
-
如果您在 客户端 遇到错误,那么您需要向我们展示 客户端代码 以便我们提供帮助,而不是服务器代码。
标签: c# asp.net sql sql-server-2008