我试图解析返回数据到C#中的JSON时有一些问题。所以基本上我有一个在SELECT SQL语句中的例子:C#解析返回数据到JSON
[WebMethod]
public string getUserDetails(string userID)
{
DataTable dt = new DataTable();
SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnStr"].ConnectionString);
string select = "select * from dbo.User WHERE userID = '" + userID + "'";
sqlConnection.Open();
SqlDataAdapter da = new SqlDataAdapter(select, sqlConnection);
da.Fill(dt);
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in dt.Columns)
{
row.Add(col.ColumnName, dr[col]);
}
rows.Add(row);
}
sqlConnection.Close();
return serializer.Serialize(rows);
}
这些代码工作正常。但是,当涉及到INSERT SQL语句,我不知道如何返回boolean值传递到JSON:
[WebMethod]
public bool addUser(UserModel um)
{
bool result = false;
result = Conversion.intToBool(SplashAwardsDB.executeNonQuery(
"INSERT INTO dbo.User ("
+ "userName, password, firstName, lastName, address, contactNo, birthDate, familyID, familyRole, x, y) "
+ " VALUES ("
+ "'" + um.userName + "', "
+ "'" + um.password + "', "
+ "'" + um.firstName + "', "
+ "'" + um.lastName + "', "
+ "'" + um.address + "', "
+ "'" + um.contactNo + "', "
+ "'" + um.birthDate + "', "
+ "'" + um.familyID + "', "
+ "'" + um.familyRole + "', "
+ "'" + um.x + "', "
+ "'" + um.y + "')"
));
return result;
}
如何序列化的任何指南?
编辑
[WebMethod]
public string checkLoginCredential(string userName, string password)
{
bool result = false;
using (var connection = new SqlConnection(SplashAwardsDB.connectionString))
{
SqlCommand command = new SqlCommand("SELECT userName, password FROM dbo.User WHERE userName = '" + userName + "' AND password = '" + password + "'", connection);
connection.Open();
using (var dr = command.ExecuteReader())
{
if (dr.Read())
{
Session["userName"] = dr["userName"];
result = true;
}
}
}
return serializer.Serialize(result);
}
基本上我想检查登录凭证。如果用户名和密码匹配,我会将用户名存储到sesssion中。那么我该如何修改这个,以便当我的朋友调用这个方法时,它会返回会话数据?
在你走之前,请请Google谷歌“SQL注入” – RobH 2014-09-22 09:16:37
好吧,但我该怎么做,因为我试过这个:System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization .JavaScriptSerializer(); return serializer.Serialize(result);但它会抛出一条错误消息,它不能隐式地将字符串转换为bool – 2014-09-22 09:17:47
那是因为'addUser'的返回类型是bool,而您试图返回一个字符串... – RobH 2014-09-22 09:30:38