0
没有与SqlDataReader的一个问题,当在SQL命令的condtion是阿拉伯语这样的:问题SqlDataReader的当SQL命令的condtion是阿拉伯语
select user_name from users where typ=N 'arabic text'
这不获取任何数据虽然有用户这种类型的名称
所以你能帮助我吗? 谢谢^ _^
没有与SqlDataReader的一个问题,当在SQL命令的condtion是阿拉伯语这样的:问题SqlDataReader的当SQL命令的condtion是阿拉伯语
select user_name from users where typ=N 'arabic text'
这不获取任何数据虽然有用户这种类型的名称
所以你能帮助我吗? 谢谢^ _^
我已将您的代码重写为使用查询参数。您希望避免将字符串直接放入您的查询中(无论如何,该类型最有可能被标准化)。主函数可能应该返回一个客户端列表到您的表示层,然后这个客户端将负责显示客户端,但是我没有去那么远。
由于您的查询是在Management Studio中运行的,因此您的数据库归类设置应该没问题。
public void ListClientsByType(string clientType)
{
using (IDbConnection conn = new SqlConnection("connectionstring"))
{
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT nam FROM clients WHERE typ = @type";
cmd.Parameters.Add(
_CreateInputParameter(cmd, DbType.String, "@type", clientType));
conn.Open();
IDataReader dr = null;
try
{
dr = cmd.ExecuteReader();
// Work with results here
}
finally
{
if (dr != null)
dr.Close();
}
}
}
private IDbDataParameter _CreateInputParameter(
IDbCommand cmd, DbType type, string name, object value)
{
IDbDataParameter p = cmd.CreateParameter();
p.DbType = DbType.String;
p.Direction = ParameterDirection.Input;
p.ParameterName = name;
p.Value = value;
return p;
}
(1.)您确实应该使用代码标签(101010按钮)来突出显示您的代码;它使阅读起来更容易。 (2.)你说用户名是阿拉伯语,但你的'WHERE'语句使用'typ'列。你确定你在'WHERE'语句中有正确的列吗? – LittleBobbyTables 2010-10-06 00:04:12
我是这个网站的初学者,所以你可以帮助我,告诉我如何突出我的代码请 – 2010-10-06 00:12:36
对不起,我的意思是有用户名有这种类型,我将编辑它 – 2010-10-06 00:14:13