ror*_*.ap 4 .net c# linq vb.net lambda
我有这个代码,在VB.NET中编译很好:
Imports System
Imports System.Data
Imports System.Data.Entity
Imports System.Data.SqlClient
Imports System.Linq
Imports System.Collections
Imports System.Collections.Generic
Friend Module MainModule
Friend Sub Main(args As String())
Dim ds = GetSqlDataSet("", "")
Dim allRows = From row In ds.Tables(0) Select row
End Sub
Private Function GetSqlDataSet(ByVal forQuery As String,
ByVal withConnectionString As String,
ByVal ParamArray withParameters As SqlClient.SqlParameter()) As DataSet
GetSqlDataSet = New DataSet()
Using conn As New System.Data.SqlClient.SqlConnection(withConnectionString)
Using command As New System.Data.SqlClient.SqlCommand(forQuery, conn)
command.Parameters.AddRange(withParameters)
Using dataAdaptor As New System.Data.SqlClient.SqlDataAdapter(command)
dataAdaptor.Fill(GetSqlDataSet)
End Using
End Using
End Using
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
以下是参考资料:
现在我看起来像C#中的完全等价物:
using System;
using System.Data;
using System.Data.Entity;
using System.Data.SqlClient;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
namespace ConsoleApplication1
{
internal static class MainEntryPoint
{
internal static void Main(string[] args)
{
var ds = GetSqlServerDataSet("", "");
var allRows = from row in ds.Tables[0] select row;
}
public static System.Data.DataSet GetSqlServerDataSet(string usingQuery,
string usingConnectionString, params System.Data.SqlClient.SqlParameter[] withParameters)
{
var ret = new System.Data.DataSet();
using (var conn = new System.Data.SqlClient.SqlConnection(usingConnectionString))
{
using (var command = new System.Data.SqlClient.SqlCommand(usingQuery, conn))
{
command.Parameters.AddRange(withParameters);
using (var adapter = new System.Data.SqlClient.SqlDataAdapter(command))
{
adapter.Fill(ret);
}
}
}
return ret;
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下是参考资料:
但是我收到了这个错误:
我发现那说话众多资源将参考/使用报表System.Linq和也System.Data.Entity,但很明显,我有那些在这两种情况下.有人可以帮我解释一下吗?为什么它在VB.NET而不是C#中工作,如何让它在C#中工作?
它看起来像VB内置支持DataTable.这是一个简短而完整的例子:
Option Strict On
Imports System
Imports System.Data
Imports System.Linq
Public Class LinqTest
Shared Sub Main()
Dim table as DataTable = New DataTable
Dim allRows = From row In table Select row
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
如果你编译然后使用ildasm它,你会发现它正在DataTableExtensions.AsEnumerable()自动调用.我不想推测VB中指定的位置,但它不是 C#自动执行的操作的一部分.只需在C#代码中明确地执行此操作即可.
| 归档时间: |
|
| 查看次数: |
678 次 |
| 最近记录: |