我正在一個錯誤:我得到「沒有行位置0」,而我嘗試從SQL
System.IndexOutOfRangeException: No rows at position 0.
從這一行:
string value = dt.Rows[0]["Project"].ToString();
全部事件:
protected void RadDropDownList1_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
RadDropDownList droplist = sender as RadDropDownList;
GridDataItem item = droplist.NamingContainer as GridDataItem;
DataTable dt = GetDataTable("SELECT Project FROM Pnum WHERE Project='"+ droplist.SelectedItem.Text +"'");
string value = dt.Rows[0]["Project"].ToString();
item["Project"].Text = value;
}
public DataTable GetDataTable(string query)
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["WTAConnectionString"].ConnectionString);
conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader());
return dt;
}
我做了一些調試,droplist.SelectedItem.Text
的值是正確的,我檢查了表中的值,並有可用的值。我應該尋找什麼?
[SQL注入警報(http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - 你應該** **不串連在一起您的SQL語句 - 使用**參數化查詢**來代替以避免SQL注入 –
您必須在退出方法'GetDataTable'之前關閉連接。 –
@mason謝謝,你的提示幫助我解決了這個問題。請將它作爲答案發布,我會接受它。 – Nullbyte