C# SqlDataAdapter 调用带参数存储过程

stringMyConn="DataSource=XCFW;InitialCatalog=sbgl;UserID=sa";SqlDataAdapterSelectAdap... string MyConn = "Data Source=XCFW;Initial Catalog=sbgl;User ID=sa";
SqlDataAdapter SelectAdapter = new SqlDataAdapter();
SqlConnection MyConnection = new SqlConnection(MyConn);
SqlCommand MyCommand = new SqlCommand(procname, MyConnection);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add("@姓名",SqlDbType.Char,10);
MyCommand.Parameters["@姓名"].Value=@fields;
MyConnection.Open();
SelectAdapter.MissingSchemaAction=MissingSchemaAction.AddWithKey;
SelectAdapter.SelectCommand.ExecuteNonQuery();
MyConnection.Close();
DataTable dt=new DataTable();
SelectAdapter.Fill(dt);
存储过程单独运行时是能查出数据的,然后不知道为什么这里查出来就没有数据了,各位大侠帮忙看一下哪里出问题了,财富有价,知识无价,回答得好的,高分呈上,就此谢过
展开
 我来答
百度网友eba9ecebd
2011-06-09
知道答主
回答量:11
采纳率:0%
帮助的人:7万
展开全部
把SelectAdapter.SelectCommand.ExecuteNonQuery(); 改成
SelectAdapter.SelectCommand = MyCommand;
更多追问追答
追问
改成后还是一样
追答
MyConn 没有密码;procname是否有值
如果还不行,我这里有根据你的代码,调试通过的代码,可以发邮件给你。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lmonkey
2021-03-29 · 教育领域创作者
个人认证用户
lmonkey
采纳数:69 获赞数:176

向TA提问 私信TA
展开全部

MySQL教程4 MySQL8运算符、函数、存储过雹睁程及新增数据类型源配岁 17.之卖塌创建带有IN和OUT参数的存储过程 学习猿地

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d46c09
2011-06-09 · TA获得超过698个赞
知道答主
回答量:79
采纳率:0%
帮助的人:57万
展开全部
string MyConn = "Data Source=XCFW;Initial Catalog=sbgl;User ID=sa";

怎么会只有User ID啊 Password呢毕桐?简饥难道是不需要Password?

MyConnection.Open(); 你在这边断点调拦数返试.

DataTable dt=new DataTable(); 括号里没有表名
追问
DataTable dt=new DataTable(); 括号里没有表名 这点没有错的,断点调试显示 dt的值为空,已经排除参数传递错误及存储过程中的错误
追答
dt为空,说明还是没有读取到数据啊,你每步都断点调试一下。看看在哪边读不到数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弦上毛虫的文具店
2011-06-09 · TA获得超过145个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:96.7万
展开全部
MyConnection.Close();
放到最咐弯渗后试试

还有闹升SelectAdapter.MissingSchemaAction=MissingSchemaAction.AddWithKey; 这句是衡脊否去掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
netliyue
2011-06-09 · 超过28用户采纳过TA的回答
知道答主
回答量:135
采纳率:0%
帮助的人:57.9万
展开全部
procname 这个应该是你存储过程激差察的名称吧,可是 这个变量的值是什么?至少在你贴出明茄来的代码里庆伍没看到
追问
以上是在函数 
public void pro(string procname,string @fields)
{}中的
其中procname是存储过程名@fields是我要传的参数,这里关键是SqlDataAdapter与存储过程的调用的问题,觉得代码应该不是这样写的..
ALTER PROCEDURE [dbo].[按姓名查询]
@姓名 char(10)
AS
select 姓名... like '%'+rtrim(@姓名)+'%' 这里没有反回值,不知道需不需要返回值,不知道这有没有错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式