0
我有2個sql來選擇table.program運行網格視圖顯示數字1 sql。gridview得到錯誤的行在選中
protected void Page_Load(object sender, EventArgs e)
{
btn_submit.Visible = false;
SqlConnection conn = new SqlConnection(@"Data Source=HENDRICK-PC\SQLEXPRESS;Initial Catalog=mylibrary.com;Integrated Security=True");
conn.Open();
string sql = "select * from PEMINJAMAN";
SqlCommand com = new SqlCommand(sql, conn);
GridView1.DataSource = com.ExecuteReader();
GridView1.DataBind();
conn.Close();
}
但我可以改變sql1到sql2只需點擊按鈕。
protected void btn_search_Click(object sender, EventArgs e)
{
try
{
close();
GridView1.DataSource = null;
GridView1.DataBind();
lbl_error.Visible = false;
SqlConnection conn = new SqlConnection(@"Data Source=HENDRICK-PC\SQLEXPRESS;Initial Catalog=mylibrary.com;Integrated Security=True");
conn.Open();
string sql = "select * from PEMINJAMAN where NAMA_PEMINJAM like '" + txt_search.Text + "%' or ALAMAT_PEMINJAM like '" + txt_search.Text + "%' or HP_PEMINJAM like '" + txt_search.Text + "%' or KODE_BUKU like '" + txt_search.Text + "%' or TGL_PINJAM like '" + txt_search.Text + "%' or TGL_KEMBALI like '" + txt_search.Text + "%'";
SqlCommand com = new SqlCommand(sql, conn);
GridView1.DataSource = com.ExecuteReader();
GridView1.DataBind();
conn.Close();
}
catch
{
lbl_error.Visible = true;
}
}
我必須從gridviewselectrow獲取數據。但問題是事件得到錯誤的row.i改變GridView控件SQL2,我選擇了行,但GridView的變化自動對SQL1,並採取從sql1.not sql2.it是我的GridView控件事件
protected void GridView1_SelectedIndexChanging1(object sender, GridViewSelectEventArgs e)
{
btn_submit.Visible = true;
lbl_nama.Text = GridView1.Rows[e.NewSelectedIndex].Cells[1].Text;
lbl_alamat.Text = GridView1.Rows[e.NewSelectedIndex].Cells[2].Text;
lbl_hp.Text = GridView1.Rows[e.NewSelectedIndex].Cells[3].Text;
lbl_kode.Text = GridView1.Rows[e.NewSelectedIndex].Cells[4].Text;
lbl_peminjaman.Text = GridView1.Rows[e.NewSelectedIndex].Cells[5].Text;
lbl_pengembalian.Text = GridView1.Rows[e.NewSelectedIndex].Cells[6].Text;
DateTime kembali = DateTime.ParseExact(lbl_pengembalian.Text,"dd-MM-yyyy",CultureInfo.InvariantCulture);
if (DateTime.Now > kembali)
{
lbl_denda.Text = "Rp.20000,-";
}
else
{
lbl_denda.Text = "Rp.0,-";
}
}
和排它的我的gridview。
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" style="text-align: left" AutoGenerateSelectButton="true" OnSelectedIndexChanging="GridView1_SelectedIndexChanging1">
<AlternatingRowStyle BackColor="White" />
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<SortedAscendingCellStyle BackColor="#FDF5AC" />
<SortedAscendingHeaderStyle BackColor="#4D0000" />
<SortedDescendingCellStyle BackColor="#FCF6C0" />
<SortedDescendingHeaderStyle BackColor="#820000" />
</asp:GridView>
如何解決它?對不起我的英語如此糟糕。 thx
可能重複[change table gridview select wrong row](http://stackoverflow.com/questions/33155617/change-table-gridview-select-wrong-row) – haraman