2015-12-17 56 views
0
protected void Page_Load(object sender, EventArgs e) 
      { 
       if (!IsPostBack) 
       { 
        SqlConnection con = Connection.DBconnection(); 
        { 
         SqlCommand com = new SqlCommand("sp_selectlendingstatus", con); 
         com.CommandType = CommandType.StoredProcedure; 
         com.Parameters.AddWithValue("@studentid", txtstudentid.Text.Trim()); 
         com.Parameters.AddWithValue("@bookid", txtbookid.Text.Trim()); 
         com.Parameters.AddWithValue("@status", status.Text.Trim()); 
         SqlDataAdapter sda = new SqlDataAdapter(com); 
         DataSet ds = new DataSet(); 
         sda.Fill(ds); 
         GridView1.DataSource = ds; 
         GridView1.DataBind(); 
        } 
       } 
      } 

ASPX:的GridView並沒有在頁面加載在C#中顯示

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     DataKeyNames="ID" EnablePersistedSelection="True" BackColor="White" 
     Height="240px" 
     Width="755px"> 
     <Columns> 
     <asp:BoundField DataField="ID" HeaderText="Student_Id" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> 
      <asp:BoundField DataField="Book_id" HeaderText="Book_id" InsertVisible="False" ReadOnly="True" SortExpression="Book_id" />     
      <asp:BoundField DataField="Book_name" HeaderText="Book_name" SortExpression="Book_name" /> 
      <asp:BoundField DataField="Author_name" HeaderText="Author_name" SortExpression="Author_name" /> 
      <asp:BoundField DataField="Publisher_name" HeaderText="Publish_name" SortExpression="Publisher_name" /> 
      <asp:BoundField DataField="Publish_date" HeaderText="Publish_date" SortExpression="Publish_date" /> 
      <asp:BoundField DataField="status" HeaderText="Status" SortExpression="status" /> 
      </Columns> 
      </asp:GridView> 

SP:

ALTER PROCEDURE sp_selectlendingstatus 

AS 
Begin 
select * from book_lending left outer join studentlibrary ON studentlibrary.Book_id=book_lending.bookid 
End 

我是新來的.NET ..

在頁面加載,我需要顯示gridview。

我試過以上的源代碼,但是當我運行gridview沒有顯示。

它顯示錯誤,sp_selectlendingstatus沒有參數傳遞。

所以,如果我添加參數在這樣sp_selectlendingstatus程序,

ALTER PROCEDURE sp_selectlendingstatus 
(
@bookid int, 
@studentid int, 
@status varchar(50) 
) 
AS 
Begin 
select * from book_lending left outer join studentlibrary ON studentlibrary.Book_id=book_lending.bookid 
End 

,並運行在SQL Server EXEC sp_selectlendingstatus。

它顯示錯誤@studentid,@bookid沒有提供。

我可以知道我的代碼中有什麼錯誤嗎?

任何幫助將不勝感激。

感謝,

+0

您沒有使用查詢中的任何參數,那麼爲什麼要將參數傳遞給它? –

+0

檢查您的查詢,這是錯誤的。 – RajeeshMenoth

+0

請你詳細說明一下嗎?謝謝 – pcs

回答

0

根據您的選擇查詢,你可以編寫以下format.Before綁定,您必須檢查網格中的所有列檢索名稱出現在在GridView否則拋出錯誤。

private void BindStudents() 
{ 
String strConnStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; 
SqlConnection con = new SqlConnection(strConnStr); 
SqlCommand cmd = new SqlCommand(); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.CommandText = "sp_selectlendingstatus"; 
cmd.Connection = con; 
try 
{ 
    con.Open(); 
    GridView1.EmptyDataText = "No Records Found"; 
    GridView1.DataSource = cmd.ExecuteReader() ; 
    GridView1.DataBind(); 
} 
catch (Exception ex) 
{ 
    throw ex; 
} 
finally 
{ 
    con.Close(); 
    con.Dispose(); 
} 
} 
+0

我需要在頁面加載時顯示正確嗎?但你的答案在Bindstudents()..我只是困惑.. – pcs

+0

只需添加Bindstudents()在頁面加載。因爲你在哪裏綁定網格在同一頁中,你只能使用單個查詢.. :) – RajeeshMenoth

+0

@Rani你明白我的觀點。 – RajeeshMenoth