我对C#一点也不了解,谁能帮我将下面这段C#代码翻译成VB,谢谢!同时一并感谢提供源码的高手!!!
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace UDS.Components {
/// <summary>
/// 通用的数据库处理类,通过ado.net与数据库连接
/// </summary>
public class Database : IDisposable {
// 连接数据源
private SqlConnection con;
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName) {
SqlCommand cmd = CreateCommand(procName, null);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, SqlParameter[] prams) {
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="dataReader">返回存储过程返回值</param>
public void RunProc(string procName, out SqlDataReader dataReader) {
SqlCommand cmd = CreateCommand(procName, null);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
//return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <param name="dataReader">存储过程所需参数</param>
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader) {
SqlCommand cmd = CreateCommand(procName, prams);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
//return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 创建一个SqlCommand对象以此来执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams) {
// 确认打开连接
Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.StoredProcedure;
// 依次把参数传入存储过程
if (prams != null) {
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
/// <summary>
/// 打开数据库连接.
/// </summary>
private void Open() {
// 打开数据库连接
if (con == null) {
con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
}
if(con.State ==System.Data.ConnectionState.Closed)
con.Open();
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close() {
if (con != null)
con.Close();
}
/// <summary>
/// 释放资源
/// </summary>
public void Dispose() {
// 确认连接是否已经关闭
if (con != null) {
con.Dispose();
con = null;
}
}
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) {
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size) {
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeReturnParam(string ParamName, SqlDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) {
SqlParameter param;
if(Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
}
}
问题点数:20、回复次数:3Top
1 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-03-03 10:53:20 得分 0
使用
Convert C# to VB .NET
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=c622348b-18a9-47d6-8687-979975d5957d
或者
http://kamalpatel.net/ConvertCSharp2VB.aspxTop
2 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-03-03 10:54:27 得分 0
'Error: Converting Properties
Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Diagnostics
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Namespace UDS.Components
'/ <summary>
'/ 通用的数据库处理类,通过ado.net与数据库连接
'/ </summary>
Public Class Database
Implements IDisposable
' 连接数据源
Private con As SqlConnection
'/ <summary>
'/ 执行存储过程
'/ </summary>
'/ <param name="procName">存储过程的名称</param>
'/ <returns>返回存储过程返回值</returns>
Public Function RunProc(ByVal procName As String) As Integer
Dim cmd As SqlCommand = CreateCommand(procName,Nothing)
cmd.ExecuteNonQuery()
Me.Close()
Return CType(cmd.Parameters("ReturnValue").Value, Integer)
End Function
'/ <summary>
'/ 执行存储过程
'/ </summary>
'/ <param name="procName">存储过程名称</param>
'/ <param name="prams">存储过程所需参数</param>
'/ <returns>返回存储过程返回值</returns>
Public Function RunProc(ByVal procName As String, ByVal prams() As SqlParameter) As Integer
Dim cmd As SqlCommand = CreateCommand(procName,prams)
cmd.ExecuteNonQuery()
Me.Close()
Return CType(cmd.Parameters("ReturnValue").Value, Integer)
End Function
'/ <summary>
'/ 执行存储过程
'/ </summary>
'/ <param name="procName">存储过程的名称</param>
'/ <param name="dataReader">返回存储过程返回值</param>
Public Sub RunProc(ByVal procName As String, ByRef dataReader As SqlDataReader)
Dim cmd As SqlCommand = CreateCommand(procName,Nothing)
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
'return (int)cmd.Parameters["ReturnValue"].Value;
End Sub
'/ <summary>
'/ 执行存储过程
'/ </summary>
'/ <param name="procName">存储过程的名称</param>
'/ <param name="prams">存储过程所需参数</param>
'/ <param name="dataReader">存储过程所需参数</param>
Public Sub RunProc(ByVal procName As String, ByVal prams() As SqlParameter, ByRef dataReader As SqlDataReader)
Dim cmd As SqlCommand = CreateCommand(procName,prams)
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection)
'return (int)cmd.Parameters["ReturnValue"].Value;
End Sub
'/ <summary>
'/ 创建一个SqlCommand对象以此来执行存储过程
'/ </summary>
'/ <param name="procName">存储过程的名称</param>
'/ <param name="prams">存储过程所需参数</param>
'/ <returns>返回SqlCommand对象</returns>
Private Function CreateCommand(ByVal procName As String, ByVal prams() As SqlParameter) As SqlCommand
' 确认打开连接
Open()
Dim cmd As SqlCommand = New SqlCommand(procName,con)
cmd.CommandType = CommandType.StoredProcedure
' 依次把参数传入存储过程
If Not prams Is Nothing Then
Dim parameter As SqlParameter
For Each parameter In prams
cmd.Parameters.Add(parameter)
Next
End If
' 加入返回参数
cmd.Parameters.Add(
New SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, False, 0, 0,
String.Empty, DataRowVersion.Default, Nothing))
Return cmd
End Function
'/ <summary>
'/ 打开数据库连接.
'/ </summary>
Private Sub Open()
' 打开数据库连接
If con Is Nothing Then
con = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
End If
If con.State =System.Data.ConnectionState.Closed Then
con.Open()
End If
End Sub
'/ <summary>
'/ 关闭数据库连接
'/ </summary>
Public Sub Close()
If Not con Is Nothing Then
con.Close()
End If
End Sub
'/ <summary>
'/ 释放资源
'/ </summary>
Public Sub Dispose()
' 确认连接是否已经关闭
If Not con Is Nothing Then
con.Dispose()
con = Nothing
End If
End Sub
'/ <summary>
'/ 传入输入参数
'/ </summary>
'/ <param name="ParamName">存储过程名称</param>
'/ <param name="DbType">参数类型</param></param>
'/ <param name="Size">参数大小</param>
'/ <param name="Value">参数值</param>
'/ <returns>新的 parameter 对象</returns>
Public Function MakeInParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Integer, ByVal Value As Object) As SqlParameter
Return MakeParam(ParamName,DbType,Size,ParameterDirection.Input,Value)
End Function
'/ <summary>
'/ 传入返回值参数
'/ </summary>
'/ <param name="ParamName">存储过程名称</param>
'/ <param name="DbType">参数类型</param>
'/ <param name="Size">参数大小</param>
'/ <returns>新的 parameter 对象</returns>
Public Function MakeOutParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Integer) As SqlParameter
Return MakeParam(ParamName,DbType,Size,ParameterDirection.Output,Nothing)
End Function
'/ <summary>
'/ 传入返回值参数
'/ </summary>
'/ <param name="ParamName">存储过程名称</param>
'/ <param name="DbType">参数类型</param>
'/ <param name="Size">参数大小</param>
'/ <returns>新的 parameter 对象</returns>
Public Function MakeReturnParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Integer) As SqlParameter
Return MakeParam(ParamName,DbType,Size,ParameterDirection.ReturnValue,Nothing)
End Function
'/ <summary>
'/ 生成存储过程参数
'/ </summary>
'/ <param name="ParamName">存储过程名称</param>
'/ <param name="DbType">参数类型</param>
'/ <param name="Size">参数大小</param>
'/ <param name="Direction">参数方向</param>
'/ <param name="Value">参数值</param>
'/ <returns>新的 parameter 对象</returns>
Public Function MakeParam(ByVal ParamName As String, ByVal DbType As SqlDbType, ByVal Size As Int32, ByVal Direction As ParameterDirection, ByVal Value As Object) As SqlParameter
Dim param As SqlParameter
If Size > 0 Then
param = New SqlParameter(ParamName, DbType, Size)
Else
param = New SqlParameter(ParamName, DbType)
End If
param.Direction = Direction
If Not (Direction = ParameterDirection.Output And Value = Nothing) Then
param.Value = Value
End If
Return param
End Function
End Class
End Namespace
'----------------------------------------------------------------
' Converted from C# to VB .NET using CSharpToVBConverter(1.2).
' Developed by: Kamal Patel (http://www.KamalPatel.net)
'----------------------------------------------------------------
Top
3 楼mw515()回复于 2006-03-03 10:56:36 得分 0
谢谢!Top




