用存储过程向数据库插入数据

billlyh 2005-05-07 04:15:29
大侠们请帮忙啊,想用存储过程向数据库插入数据:当点击indexInput.aspx页面的保存按钮,即插入。却出现错误,请指教,不胜感激!!!!错误如下:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:

行 97:
行 98: para0.Value=tcname.Value;
行 99: para1.Value=tqyjj.Value;
行 100: para2.Value=tzwxq.Value;
行 101: cmd.ExecuteNonQuery();

源文件: d:\inetpub\wwwroot\jobcsharp\indexinput.aspx.cs 行: 99

页面程序indexInput.aspx如下:
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<TABLE WIDTH="800" BORDER="1" CELLSPACING="1" CELLPADDING="1">
<TR>
<TD><INPUT id="tcname" type="text" maxLength="30">企业名称</TD>
</TR>
<TR>
<TD><INPUT id="tqyjj" type="text" maxLength="30">企业简介</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD id="t" style="HEIGHT: 29px"><INPUT id="tzwxq" type="text" maxLength="30">职位需求cname,
qyjj, zwxq</TD>
<TD style="HEIGHT: 29px"></TD>
<TD style="HEIGHT: 29px"></TD>
</TR>
<TR>
<TD>
<asp:Button id="bsave" runat="server" Text="保存"></asp:Button></TD>
</TR>
</TABLE>
</FONT>
</form>

后台程序indexInput.aspx.cs的bsave_Click如下:
private void bsave_Click(object sender, System.EventArgs e)
{
string str="Server=localhost;uid=sa;pwd=sa;Database=job";
SqlConnection Conn = new SqlConnection(str);
SqlCommand cmd = new SqlCommand();
cmd.Connection = Conn;
cmd.CommandText = "companyInsert";
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter para0=new SqlParameter("@chvCname",SqlDbType.VarChar,50);
SqlParameter para1=new SqlParameter("@chvQyjj",SqlDbType.VarChar,250);
SqlParameter para2=new SqlParameter("@chvZwxq",SqlDbType.VarChar,250);
cmd.Parameters.Add(para0);
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
para0.Value=tcname.Value;
para1.Value=tqyjj.Value;
para2.Value=tzwxq.Value;
cmd.ExecuteNonQuery()
}

存储过程如下:
CREATE Procedure companyInsert

@chvCname varchar(50),
@chvQyjj varchar(250),
@chvZwxq varchar(250)

As
Insert company (cname,qyjj,zwxq)
Values (@chvCname, @chvQyjj, @chvZwxq)
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
applelppa 2005-05-08
  • 打赏
  • 举报
回复
para0.Value=tcname.Value;
para1.Value=tqyjj.Value;
para2.Value=tzwxq.Value;
cmd.ExecuteNonQuery()
------------------------------------
para... 与cmd是无关的
改成:
cmd.Parameters["@chvCname"].Vaule = tcname.Value;
cmd.Parameters["@chvQyjj"].Vaule = tqyjj.Value;
cmd.Parameters["@chvZwxq"].Vaule = tzwxq.Value;

Conn.Open ();
cmd.ExecuteNonQuery();
Conn.Close ();

------------------------------------------------------
四十年来家国,三千里地山河,凤阁龙楼连霄汉,玉树琼枝作烟箩。几曾识干戈?


athena_fwq 2005-05-07
  • 打赏
  • 举报
回复
你得单部调试,把鼠标放在每一个经过的变量上,就会发现99行有变量没有实例话
chenhaoying 2005-05-07
  • 打赏
  • 举报
回复
象这种未将对象引用设置到对象的实例。一般都是sql语句或存储过程错误。
tieqing 2005-05-07
  • 打赏
  • 举报
回复
打开链接,
Conn.open();//打开链接
cmd.ExecuteNonQuery();//执行存储过程
Conn.close();//关闭链接
Fibona 2005-05-07
  • 打赏
  • 举报
回复
Conn.open();
cmd.ExecuteNonQuery()
jinbingg 2005-05-07
  • 打赏
  • 举报
回复
Conn.open();
cmd.ExecuteNonQuery()
Conn.close();
用段点调试
新鲜鱼排 2005-05-07
  • 打赏
  • 举报
回复
是不是
Conn.open();
cmd.ExecuteNonQuery()

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧