[英]Assigning a string to a ArrayList in c#
請告訴我代碼的問題
ArrayList dtMessages = new ArrayList();
while ((reader.Read()))
{
String temp = reader[0].ToString() + "," + reader[1].ToString() + "," + reader[2].ToString();
dtMessages.Add(temp);
}
我收到一個錯誤“對象引用未設置為對象的實例”。
抱歉,但是我是C#的新手。 請忍受我。 謝謝
編輯 :我只想添加一點。 dtMessages變量被聲明為類變量。 沒有在任何函數中聲明它。 您認為這是問題嗎?
編輯 :代碼
namespace Faye
{
public partial class _Default : System.Web.UI.Page
{
public List<String> dtMessages=new List<String>();
private List<String> LoadMessages()
{
while ((reader.Read()))
{
String temp = reader[0].ToString() + "," + reader[1].ToString() + "," + reader[2].ToString();
dtMessages.Add(temp);
}
}
}
}
在dtMessages的聲明中添加static沒什么區別
聽起來您正在嘗試從靜態方法訪問對象成員。
像這樣:
class Program {
private List<string> myList = new List<string>();
static void Main () {
// will throw error
myList.Add("String!");
}
}
嘗試這樣:
class Program {
private static List<string> myList = new List<string>();
static void Main () {
myList.Add("String!");
}
}
我在這里可能是錯的,因為我覺得第一個沒有編譯。
正如@Anthony所假定的那樣,它的第一個示例未編譯,因此這不是問題。
如果拋出異常的行是
dtMessages.Add(temp);
並且例外是“對象引用未設置為對象的實例。”,這意味着dtAccess為null,因此尚未初始化,但這很奇怪,因為存在以下行:
ArrayList dtMessages = new ArrayList();
另一種可能性是某處有一個作業,例如:
dtMessages = null;
因此,我將檢查對dtMessages的所有引用以查找分配。
試試看,為要設置的列表創建一個自動屬性,並使用臨時列表收集數據,然后將其分配給該屬性。 這樣,將啟動臨時列表,然后將其填充數據並分配給等待數據的屬性:)
namespace Faye
{
public partial class _Default : System.Web.UI.Page
{
public List<String> dtMessages { get; set; } //made property available
private List<String> LoadMessages()
{
var tempList = new List<string>();
while ((reader.Read()))
{
String temp = reader[0].ToString() + "," + reader[1].ToString() + "," + reader[2].ToString();
tempList.Add(temp);
}
dtMessages = tempList; //assign the temp list to the property now
}
}
}
如果出現上述錯誤,則您的SqlReader為null或您引用的一個或多個索引為null。 我將調試並驗證它們均具有有效值。
下一個:
1-reader對象為null,您在行中得到異常:
while ((reader.Read()))
2-reader對象不包含3個元素,在這種情況下,您將收到ArgumentOutOfRangeException
3-閱讀器中的對象之一為null,並且由於.ToString()方法而引發異常
我會把錢放到3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.