0
我有以下代碼:有沒有排在posistion [0]
private void ReturnForm_Load(object sender, EventArgs e)
{
string select = "SELECT TransactionID FROM [Transaction] WHERE ReturnDate = '" + null + "'";
comboBox1.DisplayMember = "TransactionID";
comboBox1.ValueMember = "TransactionID";
comboBox1.DataSource = con.FillTable(select);
comboBox1.SelectedIndex = -1;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int rentduration;
int lateduration;
double extracharge;
int totalprice;
int price;
string a = "SELECT StaffID,CarID,ClientName,StartDate,EndDate FROM [Transaction] WHERE TransactionID = '" + comboBox1.Text + "'";
string b = "SELECT * FROM MsCar WHERE CarrID = '" + label12.Text + "'";
DataTable dt = con.FillTable(a);
DataTable da = con.FillTable(b);
dataGridView1.DataSource = dt;
label10.Text = dt.Rows[0][1].ToString();
label11.Text = dt.Rows[0][3].ToString();
label12.Text = dt.Rows[0][2].ToString();
label13.Text = dt.Rows[0][4].ToString();
label14.Text = dt.Rows[0][5].ToString();
label15.Text = DateTime.Now.ToString("MM dd YYYY");
}
當我運行的形式,該代碼拋出錯誤:
There is no row at position 0.
但是,當我使用的datagridview:
datagridview1.datasource = dt;
顯示所有數據。
請幫幫我。
[SQL注入警報(http://msdn.microsoft.com/en-us/library/ ms161953%28v = sql.105%29.aspx) - 你應該不要**連接你的SQL語句 - 使用**參數化查詢**來代替以避免SQL注入 –
嘗試通過在行處插入一個斷點來追蹤代碼:'DataTable dt = con.FillTable(a);'並查看將在數據表的第一行填充什麼以及dt.Rows [0] [1 ] .ToString();' – eFarzad
並繼續跟蹤以查找可能導致問題的任何事件觸發。 – eFarzad