如何建立自己网站视频教程,wordpress网址导航页面,特色美食网站建设,各种网站解决方案使用 GBASE南大通用ADO.NET 调用一个存储过程#xff0c;要先创建一个GBASE南大通用Command 对象并且使用属性 CommandText 传递存储过程名#xff0c;并将属性 CommandType 设为CommandType.StoredProcedure。为存储过程中的每个输入、输出参数创建一个GBaseCommand 参数。使…使用 GBASE南大通用ADO.NET 调用一个存储过程要先创建一个GBASE南大通用Command 对象并且使用属性 CommandText 传递存储过程名并将属性 CommandType 设为CommandType.StoredProcedure。为存储过程中的每个输入、输出参数创建一个GBaseCommand 参数。使用 GBASE南大通用Command.ExecuteNonQuery()方法来调用存储过程。
调用存储过程的步骤
1) 使用 GBaseConnection 创建数据库连接对象
2) 使用 GBaseCommand 创建命令对象
3) 使用连接对象打开连接
4) 设置命令对象的属性 CommandType 为 CommandType.StoredProcedure
并关联连接对象
5) 设置命令对象的参数与库中要访问的存储过程参数一一对应
6) 执行命令对象的 ExecuteNonQuery 方法完成调用
7) 使用 GBaseCommand.Parameters 的属性 Value 获得输出参数的值
8) 关闭数据库连接
下面是使用 GBase ADO.NET 调用一个存储过程并获取输出参数的完整例
子。
C# 示例
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using GBase.Data;
using GBase.Data.GBaseClient;
using System.Diagnostics;
namespace UsingStoredRoutines
{
class Program
{
static void Main(string[] args)
{
GBaseConnection _Conn new GBaseConnection();
_Conn.ConnectionString
server192.168.5.41;userroot;databasetest;password1;poolingfals
e;
GBaseCommand _Cmd new GBaseCommand();
try
{
Console.WriteLine(Connecting to GBase...);
_Conn.Open();
_Cmd.Connection _Conn;
_Cmd.CommandText add_emp;
_Cmd.CommandType CommandType.StoredProcedure;
_Cmd.Parameters.AddWithValue(lname, Jones);
_Cmd.Parameters[lname].Direction
ParameterDirection.Input;
_Cmd.Parameters.AddWithValue(fname, Tom);
_Cmd.Parameters[fname].Direction
ParameterDirection.Input;
_Cmd.Parameters.AddWithValue(bday,
1940-06-07);
_Cmd.Parameters[bday].Direction
ParameterDirection.Input;
_Cmd.Parameters.AddWithValue(empno,
GBaseDbType.Int32);
_Cmd.Parameters[empno].Direction
ParameterDirection.Output;
_Cmd.ExecuteNonQuery();
Console.WriteLine(Employee number:
_Cmd.Parameters[empno].Value);
Console.WriteLine(Birthday:
_Cmd.Parameters[bday].Value);
}
catch (GBaseException ex)
{
Console.WriteLine(Error ex.Number has
occurred: ex.Message);
}
finally
{
if (_Conn ! null)
_Conn.Close();
Console.WriteLine(None.);
}
}
}
}