把这段代码用C#写出来 谢谢
来源:百度知道 编辑:UC知道 时间:2024/06/25 21:03:08
Sub GestionImpressionCarnet(Optional p_s_refOF As Variant, Optional p_s_refRadeau As Variant)
Dim l_s_mess As String
Dim l_s_sql As String
Dim l_re As New adodb.Recordset
Dim l_i_Carnet As Integer
Dim l_i_boucle As Integer
Dim l_b_ret As Boolean
Dim l_i_ret As Integer
On Error GoTo GestionImpressionCarnet_err
l_s_sql = "SELECT * FROM T_RADEAUX WHERE "
If (Not IsMissing(p_s_refRadeau)) Then
l_s_sql = l_s_sql & "C_NumRadeaux=" & TextSQL(p_s_refRadeau) & " "
Else
l_s_sql = l_s_sql & "C_NumOFPliage=" & TextSQL(p_s_refOF) & " AND C_Carnet <2 "
l_s_sql = l_s_sql & "ORDER BY C_IdOrdre "
End If
l_re.Open l_s_sql, g_db_new, adOpenDynamic, adLockPessimistic
If l_re.EOF Then
MsgBox "Il n'y a pas de radeaux dont le carnet doit re imprim
End If
Do While Not l_re.EOF
Dim l_s_mess As String
Dim l_s_sql As String
Dim l_re As New adodb.Recordset
Dim l_i_Carnet As Integer
Dim l_i_boucle As Integer
Dim l_b_ret As Boolean
Dim l_i_ret As Integer
On Error GoTo GestionImpressionCarnet_err
l_s_sql = "SELECT * FROM T_RADEAUX WHERE "
If (Not IsMissing(p_s_refRadeau)) Then
l_s_sql = l_s_sql & "C_NumRadeaux=" & TextSQL(p_s_refRadeau) & " "
Else
l_s_sql = l_s_sql & "C_NumOFPliage=" & TextSQL(p_s_refOF) & " AND C_Carnet <2 "
l_s_sql = l_s_sql & "ORDER BY C_IdOrdre "
End If
l_re.Open l_s_sql, g_db_new, adOpenDynamic, adLockPessimistic
If l_re.EOF Then
MsgBox "Il n'y a pas de radeaux dont le carnet doit re imprim
End If
Do While Not l_re.EOF
http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx
vb-to-csharp的转换..
但这个vb代码内有goto语句,,,你得先用if转换成正常的,,,再用这个工具吧.
adodb 改成用 ADO.net
On Error GoTo 改成
try {}catch {}
Dim l_i_Carnet As Integer 改成
int l_i_Carnet ;
谁有时间帮楼主改一下吧,呵呵,我是没有环境测试。。
不难但是麻烦! c#里也有adodb.Recordset
先用VB.NET编译
然后用反射打开 即可查看到C#代码
反射是一个.NET工具 可以反编译.NET代码 而且任意语言通用
好麻烦
看来高分也不能解决问题