2014-03-04 232 views
0
protected void Page_Load(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ExportPagetoPDFinASP.Net\App_Data\abcc.mdf;Integrated Security=True;User Instance=True"); 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandText = "SELECT * FROM cookbook"; 
    cmd.Connection = con; 

cmd.ExecuteReader(); 

} 

無法獲取數據。我不知道什麼是錯的。無法在asp.net中獲取數據c#

回答

3

ExecuteReader會返回給你一個DataReader,你需要迭代它並從你的命令中獲取行。

你也可以使用一個DataTable從DataReader的填補行,如:

DataTable dt = new DataTable(); 
dt.Load(cmd.ExecuteReader()); 

你可以有以下代碼:

using (SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\ExportPagetoPDFinASP.Net\App_Data\abcc.mdf;Integrated Security=True;User Instance=True")) 
{ 
    con.Open(); 
    using (SqlCommand cmd = new SqlCommand()) 
    { 
     cmd.CommandText = "SELECT * FROM cookbook"; 
     cmd.Connection = con; 
     DataTable dt = new DataTable(); 
     dt.Load(cmd.ExecuteReader()); 
    } 
} 

考慮使用using statement您的網絡連接和Command對象。

可以遍歷行從DataReader的一樣返回:

SqlDataReader reader = cmd.ExecuteReader(); 
while (reader.Read()) 
{ 
    Console.WriteLine(String.Format("{0}", reader[0])); //prints first column 
} 
0
public string Log(int userResult) 
    { 
     string result = "result saved"; 


     using (var conn = new SqlConnection("Data Source=XXXX;InitialCatalog=XXXX;Integrated Security=True")) 
     { 
      using (var cmd = new SqlCommand()) 
      { 
       cmd.CommandText = "dbo.setCalculatorResult"; 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Connection = conn; 
       cmd.Parameters.AddWithValue("RESULT", userResult); 

       if (conn.State != ConnectionState.Open) 
        conn.Open(); 

       int rowCount = cmd.ExecuteNonQuery(); 
       if (rowCount == 0) 
        result = "there was an error"; 
      } 
     } 
     return result; 
    } 

,也可以考慮使用特效