1.默认参数if(Param == null)
Param=默认值;2.代理,类似C的函式指针
Param=默认值;2.代理,类似C的函式指针
解决方案 »
- MDI子窗口的边框上的控制图标怎么去掉?
- 我有一些图片文件想定时不停显示,但图片可能会被别的线程更新,如何处理避免显示图片文件时出现被别的线程正在使用的的错误
- UDP传输一个类的问题
- 提示"制碼無效"的錯誤,請問如何解決
- 简单问题:读一个xml文件然后转为 string
- 如何设置EXCEL中一个单元格的长度和画表(急)!~!!!!谢谢大家
- TREEVIEW控件例子(如:怎样生成根结点和子结点等!!)
- 怎样编写一个可以显示和修改下面xml文件的一个小工具,给点思路即可
- 请教关于xml的问题!
- 怎样实现.Net Studio中的颜色设置下拉列表框?
- 请教高手,如何用C#做后台执行的无窗口程序?
- 如何在C#应用程序中,弹出一个创建数据库连接字符串的对话框?就是标准ADO的那个
Param=默认值;2.代理,类似C的函式指针
这个事例,你参考MSDN
1.
DataGrid1.DataSource=GetDataSet(sCon,"Execute djnrb_sel 'datediff(day,tsrq,getdate())<21','410101000'","djnrb_sel");
DataGrid1.DataBind();
2.
public DataSet GetDataSet(string sConns,string strCmd,string sSPName)
{
DataSet myDataSet=new DataSet("myDS");
SqlConnection myConn=new SqlConnection(sConns);
SqlDataAdapter myAdp=new SqlDataAdapter(strCmd,myConn);
SqlCommand myCmd=new SqlCommand(strCmd,myConn);
myCmd.CommandText=sSPName;
myCmd.CommandType=CommandType.StoredProcedure;
myConn.Open();
if(myConn.State==ConnectionState.Open)
{
myAdp.Fill(myDataSet);
}
myConn.Close();
return myDataSet;
}
参数说明:strCmd:执行存储过程的命令,包括参数,但必须用单引号
strCmd="Execute djnrb_sel 'datediff(day,tsrq,getdate())<21','410101000'"
sSPName:存储过程名字
can you tell me your first solution detail? thx! jixiaoqiang(探索者):
i think the function you give me may be have one paramter is ok, the strCmd is nessary, because your strCmd is include the name of procedure, right? Plz give more information about these two question, thx!
如果你的参数类型一致,那么你就可以使用数组作为参数,
因为C#中数组大小可以在运行中确定。
(2)使用重载方法
如果你的参数类型多种多样,那么你可以列举出所有可能组合,
采用重载方法。
(3)结合以上两种方法
2、使用委托
类似于C++中的函数指针
(1)定义要传递的函数
例如:public int Function(int a,double [] b,ref string c);
(2) 声明委托
例如:public delegate int WeiTuo(int a,double [] b,ref string c);
(3) 使用委托
例如:a)实例化委托
WeiTuo weiTuo = new WeiTuo(Function);
b)使用委托调用函数Funciont
int a = 1000;
double [] b = new double [2];
b[0] = 0;b[1] = 1;
string c = "asdf";
weTuo(a,b,ref c);
strCmd="Execute djnrb_sel 'datediff(day,tsrq,getdate())<21','410101000'"
这里面可以有多个参数,参数用'引住,参数之间用逗号分隔。
例如:存储过程aaaa(@v1 char(10),@v2 int)
在c#里执行这个存储过程,strCmd="Execute aaaa 'tsz','21'"就ok了。