请教一下关于留言的存储过程
USE test
存储过程的代码如下:
GO
CREATE PROCEDURE Addword
@gName varchar(50),
@gCity varchar(50),
@gMail varchar(50),
@gQQ varchar(50),
@gURL varchar(50),
@gTitle nvarchar(200),
@gContent ntext
AS
INSERT INTO Gbook(gbName,gbCity,gbMail,gbQQ,gbURL,gbTitle,gbContent)
VALUES(@gName,@gCity,@gMail,@gQQ,@gURL,@gTitle,@gContent)
GO
提交的代码如下:
SqlConnection Conn = new SqlConnection( "Data Source=localhost;Initial Catalog=test;User ID=sa;Password=123 ");
SqlCommand Comm = new SqlCommand( "Addword ", Conn);
Comm.CommandType = CommandType.StoredProcedure;
Comm.Parameters.Add( "@gName ", SqlDbType.VarChar);
Comm.Parameters.Add( "@gCity ", SqlDbType.VarChar);
Comm.Parameters.Add( "@gMail ", SqlDbType.VarChar);
Comm.Parameters.Add( "@gQQ ", SqlDbType.VarChar);
Comm.Parameters.Add( "@gURL ", SqlDbType.VarChar);
Comm.Parameters.Add( "@gTitle ", SqlDbType.nvarchar);
Comm.Parameters.Add( "@gContent ", SqlDbType.ntext);
//给存储过程的参数付值
Comm.Parameters[ "@gName "].Value = gName.Text;
Comm.Parameters[ "@gCity "].Value = gCity.Text;
Comm.Parameters[ "@gMail "].Value = gMail.Text;
Comm.Parameters[ "@gQQ "].Value = gQQ.Text;
Comm.Parameters[ "@gURL "].Value = gURL.Text;
Comm.Parameters[ "@gTitle "].Value = gTitle.Text;
Comm.Parameters[ "@gContent "].Value = gContent.Value;
Comm.ExecuteNonQuery();
//关闭连接
Conn.Close();
捕捉到的异常是“未将对象引用设置到对象的实例。”请问一下是哪里的问题呢?
[解决办法]
连接应该先打开:Conn.Open();
别的没有问题,会不会是gContent为空?自己调试一下。
[解决办法]
加上:
Conn.Open();
Comm.CommandType = CommandType.StoreProdure
[解决办法]
其实用存储过程来进行更新,提交,删除,查询这些只是用到了SQL的最简单语句
比如
查询:
select 字段1,字段…… from 表名 where 字段= '条件 '
插入
insert into 表名(字段1,字段2……)VALUES(对应字段1信息,字段2信息……) where 字段= '条件 '
或
insert into 表名(字段1,字段2……)
select
对应字段1信息 as 字段名,
对应字段2息 as 字段名
where 字段= '条件 '
更新
update 表名 set 字段1= '更新内容1 ', '字段2= '更新内容2 where 字段名= '条件 '
删除
delete from 表名 where 字段名= '条件 '