short shortRtn = 0;
SqlConnection myCnn = new SqlConnection(strCon);
SqlCommand cmdGetUserName = new SqlCommand();
myCnn.Open();
cmdGetUserName = myCnn.CreateCommand();
cmdGetUserName.CommandType = CommandType.StoredProcedure;
cmdGetUserName.CommandText = "PR_SelectUserName";
cmdGetUserName.Parameters.Add(new SqlParameter("@strUserCode",strUserCode));
cmdGetUserName.Parameters.Add(new SqlParameter("@intRtn",shortRtn));
cmdGetUserName.Parameters["@intRtn"].Direction = ParameterDirection.InputOutput;
strUserName = cmdGetUserName.ExecuteScalar().ToString();
shortRtn = (short)cmdGetUserName.Parameters["@intRtn"].Value;
myCnn.Close();
return shortRtn;
SqlConnection myCnn = new SqlConnection(strCon);
SqlCommand cmdGetUserName = new SqlCommand();
myCnn.Open();
cmdGetUserName = myCnn.CreateCommand();
cmdGetUserName.CommandType = CommandType.StoredProcedure;
cmdGetUserName.CommandText = "PR_SelectUserName";
cmdGetUserName.Parameters.Add(new SqlParameter("@strUserCode",strUserCode));
cmdGetUserName.Parameters.Add(new SqlParameter("@intRtn",shortRtn));
cmdGetUserName.Parameters["@intRtn"].Direction = ParameterDirection.InputOutput;
strUserName = cmdGetUserName.ExecuteScalar().ToString();
shortRtn = (short)cmdGetUserName.Parameters["@intRtn"].Value;
myCnn.Close();
return shortRtn;
解决方案 »
- 用vs08做的windows服务升级到.net4.0 就装不上了
- 新手,问一个关于文件保存的问题……
- 请问C#,asp.net中文本框文字变化(类似于MFC中的onchange)功能如何实现啊
- 小菜的问题.求时间间隔问题?在线等.
- c#读取db2数据库中图片,图片显示不完整,(c#和db2数据库)。
- 各位爷,快帮忙看一下,头都大了。
- using用法
- C#如何连接虚拟机里的Oracle
- 控件的AccessibleDescription到底有什么作用?没看出来
- 如何得到两个时间间隔的秒数?有这样的函数?
- 谁做过公路收费打印程序,用户要求速度不能超过五秒!可我在2000下7秒
- 最近雅虎油箱老受攻击,有没有这回事?
如果是,如下是我用过的例子代码:
假设存储过程名为Sp_InsertMyTable
在C#中如下调用:
private int MethodOfPro(string ID,string name)
{
string sproc="Sp_InsertMyTable";
SqlCommand cmd=new SqlCommand(sproc);
cmd.CommandType=CommandType.StoreProcedure;
cmd.Connection=this.myConnection;SqlParameter para1=new SqlParameter("v_id",SqlDbType.Char,10);
para1.value=ID;
cmd.Parameters.Add(para1);SqlParameter para2=new SqlParameter("v_name",SqlDbType.VarChar,20);
//这个数据类型是Oracle的,不知道SqlServer是不是一样,不好意思:)
para2.value=name;
cmd.Parameters.Add(para2);if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
int iAffectRows=cmd.ExecuteNonQuery();
cmd.Connection.Close();
return iAffectRows;
}
说明:上面的v_id,和v_name是存储过程中的输入参数。
如果有存储过程中有输出参数则在
【SqlParameter para1=new SqlParameter("v_id",SqlDbType.Char,10);
para1.value=ID;
cmd.Parameters.Add(para1);】中做相应的变化就可以了,主要是说明这个参数是输出的。
private string returnSerialNo(string sPrefix,int iLength)
{
string sproc="get_serialno_pro";
OleDbCommand cmd=new OleDbCommand(sproc);
cmd.CommandType=CommandType.StoredProcedure;
//cmd.Connection=Conn OleDbParameter para_prefix=new OleDbParameter("v_prefix",OleDbType.Char,1);
para_prefix.Value=sPrefix;
cmd.Parameters.Add(para_prefix); OleDbParameter para_length=new OleDbParameter("v_length",OleDbType.Integer);
para_length.Value=iLength;
cmd.Parameters.Add(para_length); OleDbParameter para_out_serialno=new OleDbParameter("v_out_serialno",OleDbType.VarChar,20);
para_out_serialno.Direction=System.Data.ParameterDirection.Output;
cmd.Parameters.Add(para_out_serialno);
// cmd.Parameters.Add(new System.Data.OleDb.OleDbParameter("v_out_serialno",OleDbType.VarChar,
// 10,System.Data.ParameterDirection.Output,false,0,0,"sursn",DataRowVersion.Default,0));
cmd.Connection=ConnClass.conn2;
if(cmd.Connection.State!=ConnectionState.Open)
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
string sSerialno=cmd.Parameters["v_out_serialno"].Value.ToString();
cmd.Connection.Close();
return sSerialno;
}
catch(Exception err)
{
//MessageBox.Show(err.Message);
Debug.Fail(err.Message);
return "";
}
}
这是在Oracle环境下调用的。