求C#+SQLServer代码:传参,调自定义函数,获取返回值和返回结果集。

needanothercoder 2008-06-16 09:37:28
求C#+SQLServer代码:传参,调自定义函数,获取返回值和返回结果集。
我已写了如下能运行的代码,功能是把一个表从SQLServer调入再填入网络中。
哪们能帮助改改,示例说明C#如何调用SQL自定义函数,如何传给自定义函数输入参数、输出参数,如何获得自定义函数返回的单个值、自定义函数返回的结果集。
private void button1_Click(object sender, EventArgs e)
{
string Myconnection = "server=.;database=shui;uid=sa;pwd=nevertell;";
string sql = "select * from yhb";
SqlConnection Myconn = new SqlConnection(Myconnection);
Myconn.Open();
SqlCommand STcmd = new SqlCommand(sql, Myconn);
SqlDataAdapter da = new SqlDataAdapter(sql, Myconn);
DataSet dt = new DataSet();
da.Fill(dt);
this.dataGridView1.DataSource = dt.Tables[0];
}
...全文
644 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
weiyun124 2010-10-08
  • 打赏
  • 举报
回复
学习中……
forplay 2008-06-17
  • 打赏
  • 举报
回复
MARK
Adechen 2008-06-17
  • 打赏
  • 举报
回复
学习了!!
帮你顶!!

就象调用SQL的存储过程类似
zzyhuian06142 2008-06-17
  • 打赏
  • 举报
回复
这个是回答你的第四点的:
try
{
string old="";
System.Data.SqlClient.SqlConnection _con = new System.Data.SqlClient.SqlConnection("server=(local);uid=sa;pwd=p7zx5dez;database=zyzhangA");
System.Data.SqlClient.SqlDataAdapter _sqlada = new System.Data.SqlClient.SqlDataAdapter("select dbo.getOld('"+old+"')",_con);
//这边假设dbo.getOld函数返回一个数据集
System.Data.DataSet _ds = new System.Data.DataSet();
_sqlada.Fill(_ds);
MessageBox.Show(_ds.Tables[0].Rows[0][0].ToString());
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message);
}
zzyhuian06142 2008-06-17
  • 打赏
  • 举报
回复
try
{
string old="";
System.Data.SqlClient.SqlConnection _con = new System.Data.SqlClient.SqlConnection("server=(local);uid=sa;pwd=;database=zyzhangA");
string _returnOld="";
_con.Open();
System.Data.SqlClient.SqlCommand _cmd = new System.Data.SqlClient.SqlCommand("select dbo.getOld('"+old+"')",_con);
_returnOld = (string)_cmd.ExecuteScalar();
_con.Close();
MessageBox.Show(_returnOld);
}
catch(System.Data.SqlClient.SqlException ex)
{
MessageBox.Show(ex.Message);
}
这个是把变量传给Sql函数的,并得到返回值的
fan4428 2008-06-17
  • 打赏
  • 举报
回复
是调用 proc么?
yagebu1983 2008-06-17
  • 打赏
  • 举报
回复
学习了!!
帮你顶!!
zzyhuian06142 2008-06-17
  • 打赏
  • 举报
回复
Create table a
(name varchar(20),
old varchar(20),
remark text)

create function getOld(@old varchar(20))
returns varchar(20)
as
begin
select @old = old from a where name = 'zhang'
return @old
end


declare @old varchar(20)
select dbo.getOld(@old)

这个是SQL中的参数的传入传出的,C#的变量意思也是一样的,把@old改成你定义的变量就可以了
changjiangzhibin 2008-06-17
  • 打赏
  • 举报
回复
2.C#如何把变量传给SQLServer自定义函数作为输入参数、输出参数
Input,Output,exm:
spt.Direction = ParameterDirection.Input;
spt.Direction = ParameterDirection.Output;


3.C%如何获得自定义函数返回的单个值
returns 一个值,再赋给某个变量

4.C#如何获得自定义函数返回的结果集
只能返回一个(要么一个值,要么一个结果集)
就是returns 后面的
needacoder 2008-06-17
  • 打赏
  • 举报
回复
ding
needanothercoder 2008-06-17
  • 打赏
  • 举报
回复
谢谢三位回复。
不过由于俺表述不清,造成兄弟们没明白俺的意思。
俺是说把C#中的变量做为参数,传入SQLServer的自定义函数中,调用SQLServer自定义函数后再获取返回的单值或结果集。问题分为四个子问题:
1.C#如何调用SQL自定义函数
2.C#如何把变量传给SQLServer自定义函数作为输入参数、输出参数
3.C%如何获得自定义函数返回的单个值
4.C#如何获得自定义函数返回的结果集
几位的回复只回答了第1问的一种特殊情况——在sql语句语使用自定义函数,其它各问都没有回答。
needanothercoder 2008-06-17
  • 打赏
  • 举报
回复
CSDN老毛病了,不顶看不了帖
贫僧又回来了 2008-06-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wzy_love_sly 的回复:]
SQL codecreate table tb(city varchar(50))
insert into tb select '日本'
insert into tb select '美国'
insert into tb select '印度'

alter function getname(@city varchar(50))
returns varchar(100)
as
begin
return '国家:中国---- 省份:'+@city
end




C# codeprivate void button1_Click(object sender, EventArgs e)
{
string Myconnection = "server=.;database=shui;uid=…
[/Quote]
这种例子很清楚了!
wzy_love_sly 2008-06-16
  • 打赏
  • 举报
回复
create table tb(city varchar(50))
insert into tb select '日本'
insert into tb select '美国'
insert into tb select '印度'

alter function getname(@city varchar(50))
returns varchar(100)
as
begin
return '国家:中国---- 省份:'+@city
end


private void button1_Click(object sender, EventArgs e)
{
string Myconnection = "server=.;database=shui;uid=sa;pwd=nevertell;";
string sql = "select dbo.getname(city) as city from tb";
SqlConnection Myconn = new SqlConnection(Myconnection);
Myconn.Open();
SqlCommand STcmd = new SqlCommand(sql, Myconn);
SqlDataAdapter da = new SqlDataAdapter(sql, Myconn);
DataSet dt = new DataSet();
da.Fill(dt);
this.dataGridView1.DataSource = dt.Tables[0];
}


国家:中国---- 省份:日本
国家:中国---- 省份:美国
国家:中国---- 省份:印度
懒牛科技 2008-06-16
  • 打赏
  • 举报
回复
select *,dbo.functioname(参数) from tableName

110,566

社区成员

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

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

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