【发布时间】:2018-05-22 18:02:48
【问题描述】:
我正在尝试在字符串列表中添加来自 sql 的数据,但它一直说我的字符串列表 = null。
按钮上的代码:
protected void Button2_Click(object sender, EventArgs e)
{
// go back to the menu
}
protected void Button3_Click(object sender, EventArgs e)
{
// code to display the books by sanctuary
ListBox1.Items.Clear();
List<String> s = DBConnectivity.LoadBooksBySanctuary2(3/*int.Parse(DDSanctuary.SelectedValue)*/);
foreach (var detail in s)
{
ListBox1.Items.Add(detail);
}
}
从 SQL 读取并放入字符串列表的代码。我知道我的连接很好,因为我可以添加宠物
public static List<String> LoadPetsBySanctuary2(int sID)
{
List<String> saName = new List<String>();
SqlConnection myConnection = GetConnection();
// string myQuery = "SELECT Name, categId, cName FROM Book, Category WHERE Book.CategID=Category.ID AND Book.authorId = " + sID;
string myQuery = "SELECT Name FROM pet WHERE sanID = " + saName;
SqlCommand myCommand = new SqlCommand(myQuery, myConnection);
try
{
myConnection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
// saName.Add(myReader["Name"].ToString());
saName.Add(myReader["Name"].ToString());
}
return saName;
}
catch (Exception ex)
{
Console.WriteLine("Exception in DBHandler", ex);
return null;
}
finally
{
myConnection.Close();
}
}
【问题讨论】:
-
this:
DBConnectivity.LoadBooksBySanctuary2(3/*int.Parse(DDSanctuary.SelectedValue)*/);可能不会返回List<string>(所以可能为 null)并且没有EMERGENCYok... -
but it keeps saynig that my string list = null.正是上面所说的吗?它具体说了什么?是什么原因造成的(即哪一行)? -
您将
saName而不是sID参数传递给您的查询。异常应该告诉您您的查询已损坏。 -
这将是学习使用调试器、单步调试代码并准确查看发生了什么的最佳时机。当您向我们展示
LoadPetsBySanctuary2的代码时,我们也无法告诉您LoadBooksBySanctuary2有什么问题。书不是宠物,除非你的社会与我的社会大不相同。