问题如下:
RoseLs.RoseLs.SQLServerDAL下的一个文件userAdmin.cs代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using RoseLs.DBUtility;
using RoseLs.IDAL;
using RoseLs.Model;namespace RoseLs.SQLServerDAL
{
public class UserAdmin
{ private const string SQL_CHECKADMIN = "select UserAdmin.idx,UserAdmin.Adusername,UserAdmin.Adpassword,UserAdmin.AdTitle,UserAdmin.AdJurisdiction from UserAdmin where Adusername=@username and Adpassword=@password";
private const string username = "@username";
private const string userpassword = "@password";
public UserAdminInfo GetUserAdmin(string UserName, string UserPassWord)
{
UserAdminInfo userAdmin = null;
SqlParameter[] adminParms = GetAdminParameter();
SqlCommand cmd = new SqlCommand();
adminParms[0].Value = UserName;
adminParms[1].Value = UserPassWord; foreach (SqlParameter parm in adminParms)
cmd.Parameters.Add(parm);
using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_CHECKADMIN, adminParms))
{
if (rdr.Read()) userAdmin = new UserAdminInfo(rdr.GetInt64(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4));
else
userAdmin = new UserAdminInfo();
}
return userAdmin;
cmd.Parameters.Clear();
}
private static SqlParameter[] GetAdminParameter()
{
SqlParameter[] parms = SqlHelper.GetCachedParameters(SQL_CHECKADMIN); if (parms == null)
{
parms = new SqlParameter[]
{
new SqlParameter(username,SqlDbType.NVarChar,20),
new SqlParameter(userpassword,SqlDbType.NVarChar,32) };
SqlHelper.CacheParameters(SQL_CHECKADMIN, parms); } return parms; }
}
}网站层调用页面 :Default.aspx 程序如下
protected void Button1_Click(object sender, EventArgs e)
{
UserAdmin usa = new UserAdmin();
UserAdminInfo ush = usa.GetUserAdmin("sibiyellow","111111");
this.Label1.Text = ush.AdTitle;
}运行的时候就报错误 :错误提示如下
错误页面 :SQLHelper.cs
另一个 SqlParameterCollection 中已包含 SqlParameter。
我开始的时候用的是PetShop的一个参数的传值是正确的,下楼我贴出一个参数的useradmin.cs代码
希望知道的给我解答下。
RoseLs.RoseLs.SQLServerDAL下的一个文件userAdmin.cs代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using RoseLs.DBUtility;
using RoseLs.IDAL;
using RoseLs.Model;namespace RoseLs.SQLServerDAL
{
public class UserAdmin
{ private const string SQL_CHECKADMIN = "select UserAdmin.idx,UserAdmin.Adusername,UserAdmin.Adpassword,UserAdmin.AdTitle,UserAdmin.AdJurisdiction from UserAdmin where Adusername=@username and Adpassword=@password";
private const string username = "@username";
private const string userpassword = "@password";
public UserAdminInfo GetUserAdmin(string UserName, string UserPassWord)
{
UserAdminInfo userAdmin = null;
SqlParameter[] adminParms = GetAdminParameter();
SqlCommand cmd = new SqlCommand();
adminParms[0].Value = UserName;
adminParms[1].Value = UserPassWord; foreach (SqlParameter parm in adminParms)
cmd.Parameters.Add(parm);
using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_CHECKADMIN, adminParms))
{
if (rdr.Read()) userAdmin = new UserAdminInfo(rdr.GetInt64(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4));
else
userAdmin = new UserAdminInfo();
}
return userAdmin;
cmd.Parameters.Clear();
}
private static SqlParameter[] GetAdminParameter()
{
SqlParameter[] parms = SqlHelper.GetCachedParameters(SQL_CHECKADMIN); if (parms == null)
{
parms = new SqlParameter[]
{
new SqlParameter(username,SqlDbType.NVarChar,20),
new SqlParameter(userpassword,SqlDbType.NVarChar,32) };
SqlHelper.CacheParameters(SQL_CHECKADMIN, parms); } return parms; }
}
}网站层调用页面 :Default.aspx 程序如下
protected void Button1_Click(object sender, EventArgs e)
{
UserAdmin usa = new UserAdmin();
UserAdminInfo ush = usa.GetUserAdmin("sibiyellow","111111");
this.Label1.Text = ush.AdTitle;
}运行的时候就报错误 :错误提示如下
错误页面 :SQLHelper.cs
另一个 SqlParameterCollection 中已包含 SqlParameter。
我开始的时候用的是PetShop的一个参数的传值是正确的,下楼我贴出一个参数的useradmin.cs代码
希望知道的给我解答下。
解决方案 »
- 求字符串数组中的最大值
- mssql 中的 unicode 和 ascII 单个字符的长度分别是多少?
- 使用sqldataadapter填充dataset,SQL查询语句是不是不能使用join
- 跪求各路高手啊!急啊!
- ASP.NET 自动生成的的 __doPostBack 函数的问题
- ★★★★★★★★★APS.net下没有读写文件权限的问题(XP系统做服务器)★★★★★★★★★★★★★★★★
- 问个超难问题!请思归、孟子、龎心等各位高手不吝赐教!(100分相送,问题解决再加100分)
- 发现.NET BUG,DataTable.Select
- 如何替换字符串
- 请教大神关于BundleConfig和RouteConfig的问题
- sql 2005 中xml字段的相关操作
- 用Visual Studio 2008安装问题
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using RoseLs.DBUtility;
using RoseLs.IDAL;
using RoseLs.Model;namespace RoseLs.SQLServerDAL
{
public class UserAdmin
{
public UserAdminInfo GetUserAdmin(string UserName)
{
string SQL_CHECKADMIN = "select UserAdmin.idx,UserAdmin.Adusername,UserAdmin.Adpassword,UserAdmin.AdTitle,UserAdmin.AdJurisdiction from UserAdmin where Adusername=@username";
string Username = "@username";
UserAdminInfo userAdmin = null;
SqlParameter parm = new SqlParameter(Username, SqlDbType.NVarChar, 20);
parm.Value = UserName;
using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, SQL_CHECKADMIN, parm))
{
if (rdr.Read()) userAdmin = new UserAdminInfo(rdr.GetInt64(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4));
else
userAdmin = new UserAdminInfo();
}
return userAdmin;
} }
}为什么 我用petshop里面多个参数的方法咋就报错呢?
求高手解答!
http://www.cnblogs.com/netguid/archive/2007/04/11/709169.html
局部的SqlParameter
参数是否一致
GetCachedParameters()你看看这个方法获得了数据了吗?
看看你自己的逻辑:UserAdminInfo ush = usa.GetUserAdmin("sibiyellow","111111");
SqlHelper.GetCachedParameters(SQL_CHECKADMIN);没有设置 SqlParameter参数 也不太明白GetCachedParameters()到底要得到什么,如果是数据的话 那下面的那个判断是干什么的?还有你返回的是SqlParameter对象 都不知道你的逻辑了!!阿门...
private const string SQL_CHECKADMIN = "select UserAdmin.idx,UserAdmin.Adusername,UserAdmin.Adpassword,UserAdmin.AdTitle,UserAdmin.AdJurisdiction from UserAdmin where Adusername=@username and Adpassword=@password";
private const string username = "@username";
private const string userpassword = "@password";private static SqlParameter[] GetAdminParameter()SqlParameter[] adminParms = GetAdminParameter();
SqlCommand cmd = new SqlCommand();
adminParms[0].Value = UserName;
adminParms[1].Value = UserPassWord;
foreach (SqlParameter parm in adminParms)
cmd.Parameters.Add(parm);这些操作只是采用了参数缓存机制而已,逻辑乱在哪?
这逻辑乱我感觉没出错啊,我是照搬petshop里面的设计的我只是没有petshop里面的麻烦 我在网站层直接调用我在useradmin里面写的方法GetUserAdmin()得到符合我要求的数据而已。
cmd.Parameters.Add(parm);
把这个去掉试试