求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];
}
我已写了如下能运行的代码,功能是把一个表从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];
}
解决方案 »
- 为什么我查询yahoo、baidu的whois信息,查询不到?
- 如何读写附件类型的字段?
- 如何把一个double值转换成日期格式 比如40321.0 转换成 10-5-23
- 在 System.ArgumentException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常
- 三层结构
- 类似资源管理器,listview如何快速显示文件列表
- 关于数据库结构问题
- 本来做b/s的,现在要做c/s,怎样能顺利完成任务?
- 查找用C#控制内存或者磁盘阵列的源码!!
- 大家帮忙看看这是什么问题?
- 如何自动点击MessageBox中的"确定"按键
- C#中如何历遍XML并将值按节点次序添加到TREEVIEW
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
endprivate 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];
}国家:中国---- 省份:日本
国家:中国---- 省份:美国
国家:中国---- 省份:印度
不过由于俺表述不清,造成兄弟们没明白俺的意思。
俺是说把C#中的变量做为参数,传入SQLServer的自定义函数中,调用SQLServer自定义函数后再获取返回的单值或结果集。问题分为四个子问题:
1.C#如何调用SQL自定义函数
2.C#如何把变量传给SQLServer自定义函数作为输入参数、输出参数
3.C%如何获得自定义函数返回的单个值
4.C#如何获得自定义函数返回的结果集
几位的回复只回答了第1问的一种特殊情况——在sql语句语使用自定义函数,其它各问都没有回答。
Input,Output,exm:
spt.Direction = ParameterDirection.Input;
spt.Direction = ParameterDirection.Output;
3.C%如何获得自定义函数返回的单个值
returns 一个值,再赋给某个变量4.C#如何获得自定义函数返回的结果集
只能返回一个(要么一个值,要么一个结果集)
就是returns 后面的
(name varchar(20),
old varchar(20),
re 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改成你定义的变量就可以了
{
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函数的,并得到返回值的
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);
}
帮你顶!!就象调用SQL的存储过程类似