使用VB.NET在MSSQL中根据一个字段值进行查找相同的字段的另一个别名值怎么写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用VB.NET在MSSQL中根据一个字段值进行查找相同的字段的另一个别名值怎么写?相关的知识,希望对你有一定的参考价值。

如题:下例
得到“产品ID号”进行查找对应“产品的ERP码”并显示于TEXTBOX1中,其它信息不要显示。如何来写?

查询的SQL代码是这个:

select top 1 产品ERP码 from 表 where 产品ID='2132'
你使用ado.net连接,并查询,dr.read后,textbox1.text=dr(0)即可
参考技术A 建个视图呗

VB.NET:将 CSV 文件读入二维数组

【中文标题】VB.NET:将 CSV 文件读入二维数组【英文标题】:VB.NET: Reading a CSV file into a 2D array 【发布时间】:2011-08-12 05:35:02 【问题描述】:

我正在处理一个需要我从 CSV 文件中获取值的项目。我必须对这些值进行进一步处理,如果我可以在二维数组中包含这些值,那就太好了。 CSV 文件的行数和列数会定期更改。

我无法将这些值放入 VB.NET/C# 中的二维数组中。可以请我帮忙吗?

这里是我使用的代码:

Imports System.IO

Public Class Form1
    Private Sub ReadCSVFileToArray()
        Dim strfilename As String
        Dim num_rows As Long
        Dim num_cols As Long
        Dim x As Integer
        Dim y As Integer
        Dim strarray(1, 1) As String

        ' Load the file.
        strfilename = "test.csv"

        'Check if file exist
        If File.Exists(strfilename) Then
            Dim tmpstream As StreamReader = File.OpenText(strfilename)
            Dim strlines() As String
            Dim strline() As String

            strlines = tmpstream.ReadToEnd().Split(Environment.NewLine)

            ' Redimension the array.
            num_rows = UBound(strlines)
            strline = strlines(0).Split(",")
            num_cols = UBound(strline)
            ReDim strarray(num_rows, num_cols)

            ' Copy the data into the array.
            For x = 0 To num_rows
                strline = strlines(x).Split(",")
                For y = 0 To num_cols
                    strarray(x, y) = strline(y)
                Next
            Next

            ' Display the data in textbox

            For x = 0 To num_rows
                For y = 0 To num_cols
                    TextBox1.Text = TextBox1.Text & strarray(x, y) & ","
                Next
                TextBox1.Text = TextBox1.Text & Environment.NewLine
            Next

        End If
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ReadCSVFileToArray()
    End Sub
End Class

【问题讨论】:

相关:***.com/questions/906841/csv-parser-reader-for-c、***.com/questions/1103495/…、***.com/questions/3509640/reading-csv-file-c 【参考方案1】:

您可以使用CsvReader from here 轻松方便地将 csv(或其他类似数据)读入 DataTable(或 IDataReader)。在这种情况下,它始终是我的首选 - 快速且非常强大。

【讨论】:

似乎与 VS2012 不兼容。不投反对票,仅供参考。 @Kez 以什么方式?什么失败了?你的目标是什么框架? (IDE 可以针对许多框架 - net20、net30、net35、net40、net45,还可以针对 netcore(“windows 商店”)、CF、MF、SL、WP7 等。【参考方案2】:

我并不反对 Marc Gravell,因为你不应该尝试重新发明***。他的解决方案会表现最好,并且可能有许多 CSV 格式的细微差别会搞砸一个简单的解析器,如下所示。

话虽如此,您需要一个返回二维数组的 CSV 解析器。下面的代码就是这样做的(锯齿状数组),并且应该适用于一个非常简单的 CSV 文件。这会跳过文件中的标题行。

(抱歉,它不在 VB 中,但您可以将其放在项目中的辅助类中)

private string[][] GetData(string fileName)

  List<string[]> data = new List<string[]>();

  using (StreamReader sr = new StreamReader(fileName))
  
    bool headerRow = true;
    string line;

    while ((line = sr.ReadLine()) != null)
    
      if (headerRow)
      
        headerRow = false;
      
      else
      
        string[] split = line.Split(new char[]  ',' );

        data.Add(split);
      
    
  

  return data.ToArray();

【讨论】:

【参考方案3】:

由于 CSV 的所有可能变体,解析 CSV 文件可能非常困难。见:http://en.wikipedia.org/wiki/Comma-separated_values

例如,考虑嵌入引号、逗号等。 因此,读取行/字符串并拆分它们并不是一件简单的事情。

也许你最好使用a third party library

【讨论】:

【参考方案4】:

由于列数和行数经常变化,您可以使用动态列表而不是固定的二维数组。

List<List<string>> data = new List<List<string>>();

然后,当您解析 CSV 文件时,您可以在上述结构中动态构建数据,为 CSV 文件中的每个新行添加一个新的 List&lt;string&gt;data

更新:等效的 VB.NET 类似于

data As New List(Of List(Of String))

话虽如此,@Mark Gravell 的建议是比自己做这个更好的解决方案。

【讨论】:

以上是关于使用VB.NET在MSSQL中根据一个字段值进行查找相同的字段的另一个别名值怎么写?的主要内容,如果未能解决你的问题,请参考以下文章

在 vb.net 中提供文本字段解析器的字符串

PHP如何判断输入数据库的字段值不能重复

VB.NET 中 MoveNext 的等价物

在使用 VB.NET 的 Access 中将空字符串字段插入为 null

VB.net windows 应用程序根据多个唯一行值检索值

msSQL 根据2个条件进行重新排序并增加一个排序字段