我正在用C#编写一个方法来从WCF服务查询SQL Server Express数据库.我必须使用ADO.NET来执行此操作(然后使用LINQ重写它).
该方法接受两个字符串(fname, lname)然后从匹配记录返回"健康保险NO"属性.我想把它读成一个列表(还有其他一些要检索的属性).
当前代码返回一个空列表.我哪里错了?
public List<string> GetPatientInfo(string fname, string lname)
{
string connString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\xxxx\\Documents\\Visual Studio 2010\\Projects\\ADOWebApp\\ADOWebApp\\App_Data\\ADODatabase.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection(connString);
string sqlquery = "SELECT Patient.* FROM Patient WHERE ([First Name] = '"+fname+"') AND ([Last Name] = '"+lname+"')";
SqlCommand command = new SqlCommand(sqlquery, conn);
DataTable dt = new DataTable();
List<string> result = new List<string>();
using (conn)
{
conn.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader != null && reader.Read())
{
dt.Load(reader); …Run Code Online (Sandbox Code Playgroud) 我有以下两个变量:
List<List<string>> result
string[][] resultarray
Run Code Online (Sandbox Code Playgroud)
我想从结果中获取值并将其存储在resultarray中,如下所示:[["one","two"],["three"],["four","five",six"],["seven "],["八"]]等
我有以下代码:
string[][] resultarray = new string[resultint][];
int a = new int();
int b = new int();
foreach (List<string> list in result)
{
foreach (string s in list)
{
resultarray[b][a] = s;
a++;
}
b++;
}
return resultarray;
Run Code Online (Sandbox Code Playgroud)
但是,在调试时,我在尝试递增a或b时得到"NullExceptionError:对象引用未设置为对象的实例".我也尝试将它们声明为:
int a = 0
int b = 0
Run Code Online (Sandbox Code Playgroud)
......这也行不通.我没有正确地声明这些或者它是否与foreach循环有关?