2014-02-25 64 views
1

我有下面的代碼片段:沒有排在位置0

if (!IsPostBack) 
{ 
    if (Request.QueryString["id"] != null) 
    { 
     string catid = Request.QueryString["id"].ToString(); 
     Query1 = "select senderfirstname from messages where senderid='" + catid + "'"; 
     adap = new SqlDataAdapter(Query1, con); 
     DataTable dt = ds.Tables["messages"]; 
     DataRow dr = dt.Rows[0]; 

     if (dt.Rows.Count > 0) 
     { 
      Session["table"] = dr["senderfirstname"].ToString();  
     } 
     else 
     { 
      Label1.Text = "error"; 
     } 
    } 
}  

但我發現了一個錯誤:

沒有排在位置0

我在sql服務器中有相同的查詢,但我的表包含此查詢的內容。

+1

你恨你的元音更新的代碼?你是一個骯髒的元音嗎?恥辱!對於。恥辱。 –

+0

我自由地將元音隨機地插入單詞中。現在看起來好多了。 – Marco

回答

1

你是不是加載數據到DataSet。您必須撥打SqlDataAdapter.Fill才能加載DataSet中的數據。還要在檢查Rows計數大於零的情況下分配行,以便在沒有行時存在異常

if (!IsPostBack) 
{ 
    if (Request.QueryString["id"] != null) 
    { 
     string catid = Request.QueryString["id"].ToString(); 
     Query1 = "select senderfirstname from messages where senderid='" + catid + "'"; 
     adap = new SqlDataAdapter(Query1, con); 
     adap.Fill(ds); 
     DataTable dt = ds.Tables["messages"]; 

     if (dt.Rows.Count > 0) 
     { 
       DataRow dr = dt.Rows[0]; 
       Session["table"] = dr["senderfirstname"].ToString();  
     } 
     else 
     { 
      Label1.Text = "error"; 
     } 
    } 
} 
+0

謝謝.. :)它幫助了很多:) – user3346815

+0

不客氣 – Adil

0

請檢查下面

if (!IsPostBack) 
{ 
    if (Request.QueryString["id"] != null) 
    { 
    string catid = Request.QueryString["id"].ToString(); 
    Query1 = "select senderfirstname from messages where senderid='" + catid + "'"; 
    adap = new SqlDataAdapter(Query1, con); 
    DataTable dt = ds.Tables["messages"]; 

    if (dt.Rows.Count > 0) 
    { 
     DataRow dr = dt.Rows[0]; 
     Session["table"] = dr["senderfirstname"].ToString(); 
    } 
    else 
    { 
     Label1.Text = "error"; 
    } 
}