ExecuteNonQuery: Connection 属性尚未初始化

[复制链接]
查看11 | 回复3 | 2008-4-23 17:00:07 | 显示全部楼层 |阅读模式
SqlCommand myCommand = new SqlCommand(); 中的SqlCommand(); ,是不是少了个参数??你只有myCommand .CommandText,那另一个的数据库的连接串呢??是不是忘写了??我一般这个地方会这样写,省的忘:SqlConnection sqlconn = new SqlConnection(); sqlconn.ConnectionString = "server=192.168.2.9; uid=sa; pwd=123456; database=Example"; string stSql="insert into dbo.rigister(姓名,性别,年龄,祖籍,现在所住地,移动电话,固定电话,邮箱,求职岗位,学历,毕业院校,技能,工作经验,自我评定)VALUES (@name,@sex,@age,@homeplace,@nowplace,@mobilephone,@fixphone,@email,@profile,@education,@graduation,@skill,@expirence,@remark)";
SqlCommand comm = new SqlCommand(sql, sqlconn);SqlCommand myCommand = new SqlCommand(stSql,sqlconn); 我也好久没写过这样的语句了,也不知道我说的是对还是错。。没有环境不能调试。如果错了,不要骂我哦,呵呵
回复

使用道具 举报

千问 | 2008-4-23 17:00:07 | 显示全部楼层
没有给command对象指定相应参数myCommand.Connection = con;myCommand.CommandType = CommandType.Text;myCommand.CommandText = strSql;我给你一个DB类:public class DB {//数据库连接字符串public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;//声明数据库连接对象protected SqlConnection con;/// /// 默认构造函数,在构造函数中打开数据库连接/// public LotteryDB(){ //在创建SqlConnection对象时传入连接字符串 con = new SqlConnection(ConnectionString); //打开连接 con.Open();}/// /// 进行添加、更新和删除的通用方法,即此方法可执行除SELECT以外的相应的INSERT、UPDATE和DELETE方法/// /// 所执行的SQL语句/// 所执行SQL语句中的相应参数/// 返回一个INT类型的值,如果是1则执行成功反之失败public int RunLottery(string strSql,SqlParameter[] cmdParms){ //启动一个事务 SqlTransaction tran = con.BeginTransaction(); try {
//判断连接状态是否处于打开,如果不是打开连接
if (con.State != ConnectionState.Open)
{
con.Open();
}
//创建SqlCommand对象
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
//判断cmd参数是否为空,如果不为空则传入参数
if (cmdParms != null)
{
//遍历SqlParameter数组将其传递进cmd对象中
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
//获得运行时的事务
cmd.Transaction = tran;
//执行数据库操作并返回一个整型值,通过此值来判断操作是否成功
int val = cmd.ExecuteNonQuery();
//清空SqlCommand参数
cmd.Parameters.Clear();
//提交事务
tran.Commit();
//返回整型值
return val; } catch {
//如果在程序运行时出现异常,关闭连接
con.Close();
//事务回滚
tran.Rollback();
//抛出异常信息
throw; }
}/// /// 通用查询方法/// /// SELECT语句/// SELECT语句中的参数/// 返回Sqldatareader对象public SqlDataReader SelectLottery(string strSql, SqlParameter[] cmdParms){ try {
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = strSql;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
//将执行查询语句后的集合赋值给SqlDataReader对象
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
//返回SqlDataReader对象
return rdr; } catch {
con.Close();
throw; }
} }
回复

使用道具 举报

千问 | 2008-4-23 17:00:07 | 显示全部楼层
SqlCommand myCommand = new SqlCommand(); 后面加上myCommand.Connection = myConnection;
回复

使用道具 举报

千问 | 2008-4-23 17:00:07 | 显示全部楼层
你的Command 没有和Connection关联
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行