VB.NET 从 ODBC 获取数据为 JSON
VB.NET get data from ODBC as JSON
我对 .NET 不是很熟悉,所以我什至不确定我是否知道如何以适当的方式提出这个问题,因为我不得不相信这是一个常见的用例,但我的 google-fu很可怜
在 PHP 中,如果我想从数据库中获取数据,并将其格式化为 JSON 我会使用 PDO,如下所示:
$query = $this->dbConn->prepare("SELECT * FROM Customers");
$query->execute();
$resultsSet = $query->fetchALL(PDO::FETCH_ASSOC);
foreach ( $resultsSet as $row ){
$json = json_encode( $row );
//POST $json to web service or something
}
这将以 {"Column Name": "Column Value", "Column Name": "Column Value", ...} 的格式创建 JSON 这正是我要。
我如何在 VB.NET 中执行此操作?我可以像这样使用 OdbcDataReader 从我的数据源中检索数据:
Dim Conn As New OdbcConnection("[connection string]")
Dim Cmd As New OdbcCommand("SELECT * FROM Customers", Conn)
Dim Reader As OdbcDataReader
Dim serializer As New JavaScriptSerializer()
Conn.Open()
Reader = Cmd.ExecuteReader()
While (Reader.Read())
json = serializer.Serialize(Reader).ToString
'this doesn't work - returns [{"FieldCount":126},{"FieldCount":126},{"FieldCount":126}...]
'POST json to web service
End While
本质上,我需要做的是定期从使用该应用程序的 ODBC 驱动程序的遗留应用程序中直接读取大约 100 个相当大的文件(百万以上的记录),将其转换为 JSON 并将其发布到远程网络服务。
重要的是 JSON 包含 "column name" 形式的 name/value 对:"column value"。我愿意接受其他建议。
我正在使用 VS 2017、.NET 4.6
将Newtonsoft.Json nuget包添加到项目中
而不是 reader 使用 DataAdapter 和 DataTable
DataAdapter.Fill(DataTable)
然后将 DataTable 传递给这个小函数
Public Function DataTableToJSONWithJSONNet(table As DataTable) As String
Dim JSONString As String = String.Empty
JSONString = JsonConvert.SerializeObject(table)
Return JSONString
End Function
我对 .NET 不是很熟悉,所以我什至不确定我是否知道如何以适当的方式提出这个问题,因为我不得不相信这是一个常见的用例,但我的 google-fu很可怜
在 PHP 中,如果我想从数据库中获取数据,并将其格式化为 JSON 我会使用 PDO,如下所示:
$query = $this->dbConn->prepare("SELECT * FROM Customers");
$query->execute();
$resultsSet = $query->fetchALL(PDO::FETCH_ASSOC);
foreach ( $resultsSet as $row ){
$json = json_encode( $row );
//POST $json to web service or something
}
这将以 {"Column Name": "Column Value", "Column Name": "Column Value", ...} 的格式创建 JSON 这正是我要。
我如何在 VB.NET 中执行此操作?我可以像这样使用 OdbcDataReader 从我的数据源中检索数据:
Dim Conn As New OdbcConnection("[connection string]")
Dim Cmd As New OdbcCommand("SELECT * FROM Customers", Conn)
Dim Reader As OdbcDataReader
Dim serializer As New JavaScriptSerializer()
Conn.Open()
Reader = Cmd.ExecuteReader()
While (Reader.Read())
json = serializer.Serialize(Reader).ToString
'this doesn't work - returns [{"FieldCount":126},{"FieldCount":126},{"FieldCount":126}...]
'POST json to web service
End While
本质上,我需要做的是定期从使用该应用程序的 ODBC 驱动程序的遗留应用程序中直接读取大约 100 个相当大的文件(百万以上的记录),将其转换为 JSON 并将其发布到远程网络服务。
重要的是 JSON 包含 "column name" 形式的 name/value 对:"column value"。我愿意接受其他建议。
我正在使用 VS 2017、.NET 4.6
将Newtonsoft.Json nuget包添加到项目中 而不是 reader 使用 DataAdapter 和 DataTable
DataAdapter.Fill(DataTable)
然后将 DataTable 传递给这个小函数
Public Function DataTableToJSONWithJSONNet(table As DataTable) As String
Dim JSONString As String = String.Empty
JSONString = JsonConvert.SerializeObject(table)
Return JSONString
End Function