C#存储过程的参数传递问题。

做个好人 2008-12-01 02:46:33
这是存储过程:
CREATE PROCEDURE pGetDlxx
(
@strpzhm char
)
AS
Insert Into dlzc_dlxx1
Select *
From
dlzc_zcxx
Where
pzhm=@strpzhm
GO
这是c#语言参数调用:
myConn = new SqlConnection(ConDb.connStr);
SqlCommand cmd=new SqlCommand();
cmd.Connection=myConn;
cmd.CommandText=strDlxx;
cmd.CommandType=CommandType.StoredProcedure;

SqlParameter paramPzhm =cmd.Parameters.Add
("@strpzhm",SqlDbType.Char,20);
paramPzhm.Value = ParameterDirection.Input;
paramPzhm.Value = this.Cobpzhm.Text.Trim();
myConn.Open();
cmd.ExecuteNonQuery();


为什么我插入不了数据呢?2个表的架构是一样的。
没有报错误。
我在查询分析器里面执行存储过程
Insert Into dlzc_dlxx1
Select *
From dlzc_zcxx
Where pzhm='鲁O-12345'

也可以插入数据,就是C#程序中无法插入,请SQL高手指教。谢谢。
...全文
103 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huiweichi 2008-12-01
  • 打赏
  • 举报
回复
try
{
........
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="存储过程名"
cmd.Parameters.Add("@strpzhm",SqlDbType.Char,20)=需要插入的数据
.......
}
catch(Exception ee)
{
}
finally
{}

做个好人 2008-12-01
  • 打赏
  • 举报
回复
谢谢各位了,是字段的类型截取有问题,已经解决了。
diffmaker 2008-12-01
  • 打赏
  • 举报
回复
还有,操作数据库是,最好进行一下错误捕捉,try{}catch{}finnally{}一下
diffmaker 2008-12-01
  • 打赏
  • 举报
回复
自己调试一下,看有没有出错,如果出错,是在哪里出的错
diffmaker 2008-12-01
  • 打赏
  • 举报
回复

SqlConnection myConn = new SqlConnection(ConDb.connStr);
SqlCommand cmd = new SqlCommand(strDlxx, myConn);
SqlParameter pstrpzhm = new SqlParameter("@strpzhm", SqlDbType.Char, 20);
pstrpzhm.Value = this.Cobpzhm.Text.Trim();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(pstrpzhm);
try
{
if (myConn.State == ConnectionState.Closed) myConn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
//do something ex
}
finally
{
if (myConn.State == ConnectionState.Open) myConn.Close();
}
HDNGO 2008-12-01
  • 打赏
  • 举报
回复
cmd.Parameters.AddWithValue("@strpzhm", this.Cobpzhm.Text.Trim());

这样比较方便
freeboy827 2008-12-01
  • 打赏
  • 举报
回复
SqlParameter paramPzhm =cmd.Parameters.Add
("@strpzhm",SqlDbType.Char,20);
--------------------
SqlParameter paramPzhm =cmd.Parameters.Add
("@strpzhm",SqlDbType.NvarChar,20);
做个好人 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 freeboy827 的回复:]
不够细心,和我一样,都是智能感知惹得祸
[/Quote]
就是改成那样还是不行啊。
freeboy827 2008-12-01
  • 打赏
  • 举报
回复
不够细心,和我一样,都是智能感知惹得祸
做个好人 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 huiweichi 的回复:]
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="存储过程名"
[/Quote]

已经试过,没有关系的,只是一个参数调用。
做个好人 2008-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyu1000 的回复:]
paramPzhm.Value = ParameterDirection.Input;
改为
paramPzhm.Direction= ParameterDirection.Input;
[/Quote]

跟这个没有关系,已经修改了,还是插入不了数据。谢谢。
huiweichi 2008-12-01
  • 打赏
  • 举报
回复
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText="存储过程名"
heyu1000 2008-12-01
  • 打赏
  • 举报
回复
paramPzhm.Value = ParameterDirection.Input;
改为
paramPzhm.Direction= ParameterDirection.Input;

110,571

社区成员

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

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

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