以前、DB 内の値を検索して結果を提供する VB.NET のコードがありました。これはコードでした:
Class UserData
Dim theResults = New List(Of UserData)
Property Name As String
Property LastName As String
End Class
Function GetData(ByVal clientNo As Integer) As List(Of UserData)
Dim theResults = New List(Of UserData)
Dim connStr = "serverstring"
Using conn = New SqlConnection(connStr)
Dim sql = "SELECT [Name], [PaternalLastName], [MaternalLastName] FROM [SocioInfo] Where ([SocioNum] = @SocioNum)"
Dim sqlCmd = New SqlCommand(sql, conn)
sqlCmd.Parameters.AddWithValue("@SocioNum", CStr(txtInput.Text))
conn.Open()
Dim rdr = sqlCmd.ExecuteReader
While rdr.Read
theResults.Add(New UserData With {
.Name = rdr.GetString(0),
.LastName = rdr.GetString(1),
.Maternal = rdr.GetString(2)
})
End While
conn.Close()
End Using
Return theResults
End Function
Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
Dim clientNo As Integer = 0
Dim myResults = GetData(clientNo)
If Integer.TryParse(txtInput.Text, clientNo) Then
If myResults.Count = 1 Then
Execute Code
Else
MessageBox.Show("NAH")
End If
Else
MessageBox.Show("NAH")
End If
End Sub
このコードを C# に変換しようとしましたが、惨めに失敗しました。オンラインで見つけたいくつかのコンバーターを使用しましたが、例外がスローされたので、手動で試してみましたが、C#でロープをまだ学んでいるため、コードや正しい方法がわかりません。誰かがそれを助けることができれば、それは大歓迎です:)
C# コード:
{
theResults = new List<UserData>();
public string Nombre { get; set; }
public string Apellido { get; set; }
public string ApellidoMaterno { get; set; }
}
public List<UserData> GetData(int clientNo)
{
dynamic theResults = new List<UserData>();
dynamic connStr = "Data Source=lsf-corapbk-01;Initial Catalog=Custmast_CO;Integrated Security=Yes";
using (conn == new SqlConnection(connStr))
{
dynamic sql = "SELECT [Name], [PaternalLastName], [MaternalLastName] FROM [SocioInfo] Where ([SocioNum] = @SocioNum)";
dynamic sqlCmd = new SqlCommand(sql, conn);
sqlCmd.Parameters.AddWithValue("@SocioNum", Convert.ToString(txtInput.Text));
conn.Open();
dynamic rdr = sqlCmd.ExecuteReader;
while (rdr.Read)
{
theResults.Add(new UserData
{
Nombre = rdr.GetString(0),
Apellido = rdr.GetString(1),
ApellidoMaterno = rdr.GetString(2)
});
}
conn.Close();
}
return theResults;
}
ほとんどの例外は UserData 領域にあります。