如何在cs页面中调用一个sql 函数? 本帖最后由 wangxiaofeiwuqiao 于 2010-11-08 08:40:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这有个例子你参考一下http://www.cnblogs.com/geovindu/archive/2010/03/19/1689887.html SqlConnection conn = new SqlConnection(connectionString); 8 string strSql = "SQL函數名称"; //自定SQL函數 SqlConnection conn = new SqlConnection(connectionString); 8 string strSql = "SQL函數名称"; //自定SQL函數 当我将它变成自定义函数的时候,好像sql的内容少了很多,是怎么回事? 那个函数在查询分析器里面是完全没问题的,但是我调用的时候一片空白,我怀疑是参数的问题,但是create function dbo.f_str(@ITEM_CODE varchar(20),@des varchar(20) ,@date_num int, @dt datetime)这里要写什么参数呢, 我的都是动态的 private void FileNo() { string ConnectionOledb = System.Configuration.ConfigurationManager.AppSettings["ConStringOledb"]; OleDbConnection conn = new OleDbConnection(ConnectionOledb); string strSql = "f_str"; //自定SQL函數 OleDbCommand cmd = new OleDbCommand(strSql, conn); cmd.CommandType = CommandType.StoredProcedure; //cmd.Parameters.Add("@Str", OleDbType.VarChar).Value = "ZQ3"; //輸入參數 cmd.Parameters.Add("@ITEM_CODE", OleDbType.VarChar).Value = ""; //輸入參數 cmd.Parameters.Add("@des", OleDbType.VarChar).Value = ""; //輸入參數 cmd.Parameters.Add("@date_num", OleDbType.Integer).Value = 0; //輸入參數 cmd.Parameters.Add("@dt", OleDbType.DBDate).Value = System.DateTime.Now.ToShortDateString(); //輸入參數 cmd.Parameters.Add("@returnString", OleDbType.VarChar); cmd.Parameters["@returnString"].Direction = ParameterDirection.ReturnValue; //返回參數 try { conn.Open(); object o = cmd.ExecuteScalar(); //this.txtAFileNO.Text = cmd.Parameters["@returnString"].Value.ToString(); //Response.Write(""); string strq = cmd.Parameters["@returnString"].Value.ToString(); DataSet ds = Base.GetDataSet(strq,"ds"); GridView1.DataSource = ds.Tables["ds"]; // GridView1.DataKeyNames = new string[] { "Monday" }; GridView1.DataBind(); } catch (Exception ex) { //this.txtAFileNO.Text = ex.Message; } finally { if (!(conn.State == ConnectionState.Closed)) { conn.Close(); } } } 用查询分析器直接运行不用写参数但是我要在cs页面调用,有4个参数,(@ITEM_CODE varchar(20),@des varchar(20) ,@date_num int, @dt datetime) , 提供CommandType.StoredProcedure就可以调用存储过程了啊CommandType.Text就是调用表,默认 调用存储过程要加一句代码:sqlcmd.CommandText="存储过程名"; 添加参数一般用AddWithValue 不用转也行的,一样能参数化执行string sql = "select dbo.f_str(@ITEM_CODE, @des, @date_num, @dt)"; 能否具体点还有为什么我把我帖子的内容保存为自定义函数的时候,好像select ITEM_CODE,des, max(case date_num when 0 then ltrim(to_be_fllw) else '' end) [0wk], max(case date_num when 0 then code else '' end) [0wk需求成品], max(case date_num when 1 then ltrim(to_be_fllw) else '' end) [1wk], max(case date_num when 1 then code else '' end) [1wk需求成品], max(case date_num when 2 then ltrim(to_be_fllw) else '' end) [2wk], max(case date_num when 2 then code else '' end) [2wk需求成品], max(case date_num when 3 then ltrim(to_be_fllw) else '' end) [3wk], max(case date_num when 3 then code else '' end) [3wk需求成品], max(case date_num when 4 then ltrim(to_be_fllw) else '' end) [4wk], max(case date_num when 4 then code else '' end) [4wk需求成品], max(case date_num when 5 then ltrim(to_be_fllw) else '' end) [5wk], max(case date_num when 5 then code else '' end) [5wk需求成品], max(case date_num when 6 then ltrim(to_be_fllw) else '' end) [6wk], max(case date_num when 6 then code else '' end) [6wk需求成品], max(case date_num when 7 then ltrim(to_be_fllw) else '' end) [7wk], max(case date_num when 7 then code else '' end) [7wk需求成品], max(case date_num when 8 then ltrim(to_be_fllw) else '' end) [8wk], max(case date_num when 8 then code else '' end) [8wk需求成品], max(case date_num when 9 then ltrim(to_be_fllw) else '' end) [9wk], max(case date_num when 9 then code else '' end) [9wk需求成品], max(case date_num when 10 then ltrim(to_be_fllw) else '' end) [10wk], max(case date_num when 10 then code else '' end) [10wk需求成品], max(case date_num when 11 then ltrim(to_be_fllw) else '' end) [11wk], max(case date_num when 11 then code else '' end) [11wk需求成品], max(case date_num when 12 then ltrim(to_be_fllw) else '' end) [12wk], max(case date_num when 12 then code else '' end) [12wk需求成品]from(这部分的东西都不见了 web.config中configSections节的作用 各位老大,有没有用javascript实现gridview二次查询的例子呀 sql查询 Gridview 中自定义模板后,在模板里面添加控件,对该控件的创建事件(SOS) vod点播中如何使用局域网共享的方式点播 Girl的ERP实施和软件开发,请帮忙给点意见!!! 基于用户验证?还是从数据库中验证,各位弟兄给点意见 谢谢先 ODBC是什么??? 简单问题-受保护级别限制(C#) ASP.NET焦点的问题!急~~~~~~,在线狂等!!! 关于My97日历控件的简单问题 请教一下:.Net问题
你参考一下
http://www.cnblogs.com/geovindu/archive/2010/03/19/1689887.html
8 string strSql = "SQL函數名称"; //自定SQL函數
8 string strSql = "SQL函數名称"; //自定SQL函數
create function dbo.f_str(@ITEM_CODE varchar(20),@des varchar(20) ,@date_num int, @dt datetime)
这里要写什么参数呢, 我的都是动态的
private void FileNo()
{
string ConnectionOledb = System.Configuration.ConfigurationManager.AppSettings["ConStringOledb"];
OleDbConnection conn = new OleDbConnection(ConnectionOledb);
string strSql = "f_str"; //自定SQL函數
OleDbCommand cmd = new OleDbCommand(strSql, conn);
cmd.CommandType = CommandType.StoredProcedure;
//cmd.Parameters.Add("@Str", OleDbType.VarChar).Value = "ZQ3"; //輸入參數
cmd.Parameters.Add("@ITEM_CODE", OleDbType.VarChar).Value = ""; //輸入參數
cmd.Parameters.Add("@des", OleDbType.VarChar).Value = ""; //輸入參數
cmd.Parameters.Add("@date_num", OleDbType.Integer).Value = 0; //輸入參數
cmd.Parameters.Add("@dt", OleDbType.DBDate).Value = System.DateTime.Now.ToShortDateString(); //輸入參數 cmd.Parameters.Add("@returnString", OleDbType.VarChar);
cmd.Parameters["@returnString"].Direction = ParameterDirection.ReturnValue; //返回參數
try
{
conn.Open();
object o = cmd.ExecuteScalar(); //this.txtAFileNO.Text = cmd.Parameters["@returnString"].Value.ToString(); //Response.Write("");
string strq = cmd.Parameters["@returnString"].Value.ToString();
DataSet ds = Base.GetDataSet(strq,"ds"); GridView1.DataSource = ds.Tables["ds"];
// GridView1.DataKeyNames = new string[] { "Monday" };
GridView1.DataBind();
}
catch (Exception ex)
{
//this.txtAFileNO.Text = ex.Message;
}
finally
{
if (!(conn.State == ConnectionState.Closed))
{
conn.Close();
}
}
}
但是我要在cs页面调用,有4个参数,(@ITEM_CODE varchar(20),@des varchar(20) ,@date_num int, @dt datetime) ,
CommandType.Text就是调用表,默认
添加参数一般用AddWithValue
还有
为什么我把我帖子的内容保存为自定义函数的时候,好像
select ITEM_CODE,des,
max(case date_num when 0 then ltrim(to_be_fllw) else '' end) [0wk],
max(case date_num when 0 then code else '' end) [0wk需求成品],
max(case date_num when 1 then ltrim(to_be_fllw) else '' end) [1wk],
max(case date_num when 1 then code else '' end) [1wk需求成品],
max(case date_num when 2 then ltrim(to_be_fllw) else '' end) [2wk],
max(case date_num when 2 then code else '' end) [2wk需求成品],
max(case date_num when 3 then ltrim(to_be_fllw) else '' end) [3wk],
max(case date_num when 3 then code else '' end) [3wk需求成品],
max(case date_num when 4 then ltrim(to_be_fllw) else '' end) [4wk],
max(case date_num when 4 then code else '' end) [4wk需求成品],
max(case date_num when 5 then ltrim(to_be_fllw) else '' end) [5wk],
max(case date_num when 5 then code else '' end) [5wk需求成品],
max(case date_num when 6 then ltrim(to_be_fllw) else '' end) [6wk],
max(case date_num when 6 then code else '' end) [6wk需求成品],
max(case date_num when 7 then ltrim(to_be_fllw) else '' end) [7wk],
max(case date_num when 7 then code else '' end) [7wk需求成品],
max(case date_num when 8 then ltrim(to_be_fllw) else '' end) [8wk],
max(case date_num when 8 then code else '' end) [8wk需求成品],
max(case date_num when 9 then ltrim(to_be_fllw) else '' end) [9wk],
max(case date_num when 9 then code else '' end) [9wk需求成品],
max(case date_num when 10 then ltrim(to_be_fllw) else '' end) [10wk],
max(case date_num when 10 then code else '' end) [10wk需求成品],
max(case date_num when 11 then ltrim(to_be_fllw) else '' end) [11wk],
max(case date_num when 11 then code else '' end) [11wk需求成品],
max(case date_num when 12 then ltrim(to_be_fllw) else '' end) [12wk],
max(case date_num when 12 then code else '' end) [12wk需求成品]
from
(这部分的东西都不见了