我有這個奇怪的錯誤,它不會與其他問題中的任何錯誤進行比較。 我很確定我做得正確,但一直給我這個錯誤。 繼承人我的代碼:即使在調用Read()之前調用Read()之前訪問字段的嘗試也是無效的()
myconn.Open();
Bidreader = command.ExecuteReader();
Maxbids.Clear();
bidders.Clear();
Minbids.Clear();
Bidreader.Read();
Maxbids.Add(Convert.ToInt16(Bidreader["Maxbid"].ToString()));
Minbids.Add(Convert.ToInt16(Bidreader["Minbid"].ToString()));
bidders.Add(Bidreader["Name"].ToString());
Bidreader.Read();
Maxbids.Add(Convert.ToInt16(Bidreader["Maxbid"].ToString()));
Minbids.Add(Convert.ToInt16(Bidreader["Minbid"].ToString()));
bidders.Add(Bidreader["Name"].ToString());
Bidreader.Close();
Bidreader.Close();
myconn.Close();
我得到的錯誤是:調用read()
喔之前訪問一個字段 無效嘗試,我忘了寫,這個代碼在timer_tick 。
更新!!: 現在我已經重寫了,從你們的幫助:
public partial class MainWindow
{
string Currentitem;
int Timeleftint;
int Highestbid = 0;
int WinnerBid;
int Givenitems;
List<int> Maxbids = new List<int>();
List<int> Minbids = new List<int>();
List<string> bidders = new List<string>();
string Highestbidder = "None";
System.Windows.Threading.DispatcherTimer Itemtimer = new System.Windows.Threading.DispatcherTimer();
System.Windows.Threading.DispatcherTimer Bidcheck = new System.Windows.Threading.DispatcherTimer();
public MainWindow()
{
InitializeComponent();
}
private void Bidcheck_Tick(object sender, EventArgs e)
{
string MyConnection = "";
MySqlConnection myconn = new MySqlConnection(MyConnection);
MySqlCommand command = myconn.CreateCommand();
command.CommandText = "SELECT Name,MinBid,MaxBid,Item FROM bids WHERE Item ='" + Currentitem + "' ORDER BY MaxBid DESC";
myconn.Open();
MySqlDataReader Bidreader = command.ExecuteReader();
Maxbids.Clear();
bidders.Clear();
Minbids.Clear();
Bidreader.Read();
while (Bidreader.Read())
{
Maxbids.Add(Convert.ToInt16(Bidreader["Maxbid"].ToString()));
Minbids.Add(Convert.ToInt16(Bidreader["Minbid"].ToString()));
bidders.Add(Bidreader["Name"].ToString());
}
MessageBox.Show(bidders[0] + Maxbids[0] + Minbids[0]);
MessageBox.Show(bidders[1] + Maxbids[1] + Minbids[1]);
Bidreader.Close();
myconn.Close();
現在,我得到一個新的錯誤,這幾乎是更加古怪。 即使我做Bidreader.Read()我仍然得到一個錯誤,因爲Maxbids,Minbids和bidders在試圖在messagebox中顯示時沒有任何索引。我想這意味着這意味着它從不讀取數據。 對嗎?
你關閉它兩次.. – CularBytes
你應該檢查什麼方法'閱讀()'回報。也許數據集中沒有行,所以'DbDataReader'不能獲得任何行。 – dymanoid
你也打電話給Bidreader兩次,刪除第二個。使用一個while循環來讀取你的數據 – prospector