请问怎么样配合使用GetCachedParameterSet和CacheParameterSet,两者是如何配合使用的,可以发一些程序例子(C#)过来看一下最好.
解决方案 »
- 请教多维数组
- GirdView问题
- 如果一个delegate声明的时候是public void delegate MyMethod(int i)的话,那么在调用它代理的方法的时候,怎么把参数传进去?
- 关于Form1中的progressBar加载与Form2并行的问题?(c# winform)
- 开发客户端的程序,需要注意那几个方面的问题?请做过大虾给于支持.谢谢.
- 谁有高速c#开文挡代码,
- XML注释问题.
- 有什么办法提高水晶报表的填充数据的速度
- 在DataGrid1中如何绑定DropDownList项?
- WindowsForm(C#)中的datagrid问题!
- 在form 上画sin曲线 代码怎样写!~~~~
- MDI同时打开两个子窗口的问题
connectionString,
CommandType.StoredProcedure,
"getProductsByCategory",
new SqlParameter("@CategoryID", categoryID));
.................
太多了你自己来看吧:http://www.cnblogs.com/yanxq/archive/2004/12/28/82779.html
我发些我做的代码给你看一下,是一个用户注册功能.
存储过程:CREATE PROCEDURE INSERT_USERS
@username varchar(50),
@password varchar(50),
@birth datetime,
@email varchar(50),
@roleid int
AS
INSERT INTO Users
(UserName,
Password,
Email,
Birth,
RoleID)
VALUES (@username,
@password,
@email,
@birth,
@roleid)
GO业务逻辑层的其中一个功能函数
public void AddUsers(string username,string password,System.DateTime birth,string email,int roleid)
{
//SqlConnection myConnection=new SqlConnection(conn);
SqlParameter[] paramsToStore=new SqlParameter[5];
paramsToStore[0]=new SqlParameter("@username",SqlDbType.VarChar,50);
paramsToStore[1]=new SqlParameter("@password",SqlDbType.VarChar,50);
paramsToStore[2]=new SqlParameter("@birth",SqlDbType.DateTime);
paramsToStore[3]=new SqlParameter("@email",SqlDbType.VarChar,50);
paramsToStore[4]=new SqlParameter("@roleid",SqlDbType.Int);
SqlHelperParameterCache.GetCachedParameterSetCacheParameterSet(conn,"INSERT_USERS",paramsToStore);
}注册页面的后台代码:
private void Register_Click(object sender, System.EventArgs e)
{ //初始化业务层接口
UserDB user=new UserDB();
string username=Reg_UserName.Text.Trim();
string password=Reg_Password.Text.Trim();
//System.DateTime birth=Birth.Text.Trim();
string email=Email.Text.Trim();
int roleid=1;
//SqlParameter usernamePram=new SqlParameter("@username",SqlDbType.VarChar,50);
// usernamePram.Value=username;
// SqlParameter passwordPram=new SqlParameter("@password",SqlDbType.VarChar,50);
// passwordPram.Value=password;
//SqlParameter[] storedParams=new SqlParameter[5];
//storedParams=SqlHelperParameterCache.GetCachedParameterSet(conn,"INSERT_USERS");
//storedParams[0].Value=username;
//storedParams[1].Value=password;
// storedParams[2].Value=birth;
// storedParams[3].Value=email;
// storedParams[4].Value=roleid;
if (password==Reg_RePassword.Text)
{
user.AddUsers(username,UserDB.Encrypt(password),System.Convert.ToDateTime(Birth.Text),email,roleid);
Response.Write("注册成功!");
}
else
{
Response.Write("注册失败!");
}
}
问题:
能够反馈注册成功的信息,但是就是插入不了数据进数据库.我刚学SqlHelper这个类,还有很多不懂的地方,还请各位详细请教!
/// 获取用户集合
/// </summary>
/// <param name="sndId">主辖区</param>
/// <param name="trdId">一级辖区</param>
/// <param name="n">每页显示记录数</param>
/// <param name="m">当前页数</param>
/// <param name="num">总记录数</param>
/// <returns>用户集合</returns>
public AccountModel GetAccounts(int sndId, int trdId, int n, int m, out int num)
{
string spString = "GetAccounts";
string[] tables = new string[] { ACCOUNT_TABLE }; SqlParameter[] parms = SqlHelperParameterCache.GetSpParameterSet(AccessCommon.ConnectionString, spString);
parms[0].Value = sndId;
parms[1].Value = trdId;
parms[2].Value = n;
parms[3].Value = m; AccountModel accountModel = new AccountModel();
SqlHelper.FillDataset(AccessCommon.ConnectionString, CommandType.StoredProcedure, spString, accountModel, tables, parms);
num = (int)parms[4].Value; return accountModel;
}说明:
spString:你的存储过程的名称
params:你存储过程的参数集合(注意位置要一一对应)最好是看微软的SqlHelper的帮助,里面有很详细的说明
运行的时候就出现以下错误:
System.Data.SqlClient.SqlException: 无法将 NULL 值插入列 'UserID',表 'ExamSystem.dbo.Users';该列不允许空值。INSERT 失败。语句已终止。
-----------------------------------------------------------------------
代码如下: private void AddUsers(string username,string password,string birth,string email,int roleid)
{
//try
//{
SqlParameter usernamePram=new SqlParameter("@username",SqlDbType.VarChar,50);
usernamePram.Value=username;
SqlParameter passwordPram=new SqlParameter("@password",SqlDbType.VarChar,50);
passwordPram.Value=password;
SqlParameter birthPram=new SqlParameter("@birth",SqlDbType.DateTime);
birthPram.Value=birth;
SqlParameter emailPram=new SqlParameter("@email",SqlDbType.VarChar,50);
emailPram.Value=email;
SqlParameter roleidPram=new SqlParameter("@roleid",SqlDbType.Int);
roleidPram.Value=roleid;
SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcedure,"INSERT_USERS",usernamePram,passwordPram,birthPram,emailPram,roleidPram);
//return i;
// }
//catch(Exception)
//{
// Response.Write("发生异常错误!");
// } }
private void Register_Click(object sender, System.EventArgs e)
{ //初始化业务层接口
UserDB user=new UserDB();
string username=Reg_UserName.Text.Trim();
string password=Reg_Password.Text.Trim();
string birth=Birth.Text.Trim();
string email=Email.Text.Trim();
int roleid=1;
//SqlParameter[] storedParams=new SqlParameter[5];
//storedParams=SqlHelperParameterCache.GetCachedParameterSet(conn,"INSERT_USERS");
//storedParams[0].Value=username;
//storedParams[1].Value=password;
// storedParams[2].Value=birth;
// storedParams[3].Value=email;
// storedParams[4].Value=roleid;
if (password==Reg_RePassword.Text)
{
AddUsers(username,UserDB.Encrypt(password),birth,email,roleid);
Response.Write("注册成功!");
}
else
{
Response.Write("注册失败!");
}
}
To:lhcoolhacker(hugh-lin)你的QQ多少,我加你讨论好不?