error ครับ Unable to cast object of type 'System.Int32' to type 'System.String'.
อย่างนี้จะได้ไหม
lblAgen.Text = e.Row.DataItem("AgenciesID").ToString();
Date :
2013-06-07 21:14:15
By :
watcharop
ไม่ได้ครับ ผมลองใช้ Code (C#)
lblAgen.Text = e.Row.DataItemIndex.ToString("AgenciesID");
มันขึ้นเเต่คำว่า AgenciesID ทุกอันเลยครับ
Date :
2013-06-07 21:36:20
By :
Kaen17
แบบนี้ Error หรือครับ
lblAgen.Text = e.Row.DataItem("AgenciesID").ToString();
เห็นคุณเขียนไม่เหมือนที่ผมเขียน
Date :
2013-06-07 23:44:39
By :
watcharop
Date :
2013-06-08 08:27:39
By :
mr.win
ใช่ครับ ใช้เเบบ Code (C#)
lblAgen.Text = e.Row.DataItem("AgenciesID").ToString();
error ครับ ผมเลยลองเปลี่ยนดูครับ
Date :
2013-06-08 09:13:17
By :
Kaen17
โค้ดนี้มันอยู่ใน Event ไหนครับ
Date :
2013-06-08 14:48:09
By :
watcharop
อยุ่ใในนี้ครับบ
Code (C#)
void myGridView_RowDataBound(Object s, GridViewRowEventArgs e)
{
Label lblAgen = (Label)(e.Row.FindControl("lblAgen"));
if (lblAgen != null)
{
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
}
Label lblName = (Label)(e.Row.FindControl("lblName"));
if (lblName != null)
{
lblName.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesName");
}
}
Date :
2013-06-08 15:58:02
By :
Kaen17
มันมีฟิล์ด AgenciesName จริงๆ เหรอครับ
ประวัติการแก้ไข 2013-06-08 16:19:58 2013-06-08 16:22:49
Date :
2013-06-08 16:18:45
By :
watcharop
มีครับ ใน DB มี AgenciesID เก็บเป็น int ให้ รัน Auto ครับ ส่วน AgenciesName เก็บจากการบันทึกครับ
Date :
2013-06-08 16:47:54
By :
Kaen17
Code (C#)
//Pass Parameter Between Pages.
protected void Button2_Click(object sender, EventArgs e)
{
string s = "lbluser.Text, lbltype.Text, txttotal.Text";
Page.Items.Add("xxx", s);
Response.Redirect("finish.aspx");
}
Code (C#)
//Get Parameter Between Pages.
protected void Page_Load(object sender, EventArgs e)
{
if ((string)Page.Items["xxx"] != null)
{
Response.Write("How old are you?");
}
}
Date :
2013-06-08 17:00:59
By :
ผ่านมาพอดี
ยังไม่ได้เลยครับ error ครับ Unable to cast object of type 'System.Int32' to type 'System.String'. error ที่ Code (C#)
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
Code (C#)
void myGridView_RowDataBound(Object s, GridViewRowEventArgs e)
{
Label lblAgen = (Label)(e.Row.FindControl("lblAgen"));
if (lblAgen != null)
{
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
}
Label lblName = (Label)(e.Row.FindControl("lblName"));
if (lblName != null)
{
lblName.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesName");
}
}
ประวัติการแก้ไข 2013-06-09 07:42:01
Date :
2013-06-09 07:41:18
By :
Kaen17
ตรวจสอบว่า DataItem มีข้อมูลไหม
void myGridView_RowDataBound(Object s, GridViewRowEventArgs e)
{
If(e.Row.DataItem) {
Label lblAgen = (Label)(e.Row.FindControl("lblAgen"));
if (lblAgen != null)
{
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
}
Label lblName = (Label)(e.Row.FindControl("lblName"));
if (lblName != null)
{
lblName.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesName");
}
}
}
Date :
2013-06-09 11:51:14
By :
watcharop
เอาหน้าโค้ดหน้า .aspx มาให้ดูหน่อย
Date :
2013-06-09 11:53:16
By :
watcharop
นี่ครับ
Code (C#)
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%>
<%@ Page Title="" Language="C#" MasterPageFile="~/Admin.Master" AutoEventWireup="true" CodeBehind="listAgenciesAdmin.aspx.cs" Inherits="Project56.listAgenciesAdmin" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<style type="text/css">
.style8
{
text-align: center;
}
.style9
{
font-weight: bold;
font-size: x-large;
}
.style11
{
text-align: center;
width: 124px;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<p>
<table cellpadding="0" cellspacing="0" class="style5">
<tr>
<td class="style9" colspan="2">
ตารางข้อมูลหน่วยงานผู้บริหาร
<br />
</td>
</tr>
<tr>
<td class="style8" colspan="2">
<asp:Button ID="Button1" runat="server" PostBackUrl="~/Addagencies.aspx"
style="font-size: small" Text="เพิ่มหน่วยงาน" />
</td>
</tr>
<tr>
<td class="style11">
</td>
<td style="text-align: right">
<script runat="server">
void Page_Load(object sender,EventArgs e)
{
if(!Page.IsPostBack)
{
BindData();
}
}
void BindData()
{
SqlConnection objConn = new SqlConnection();
SqlCommand objCmd = new SqlCommand();
SqlDataAdapter dtAdapter = new SqlDataAdapter();
DataSet ds = new DataSet();
String strConnString,strSQL;
strConnString = "Server=localhost;UID=sa;PASSWORD=12345;database=mydatabase;Max Pool Size=400;Connect Timeout=600;";
strSQL = "SELECT * FROM Agencies";
objConn.ConnectionString = strConnString;
objCmd.Connection = objConn;
objCmd.CommandText = strSQL ;
objCmd.CommandType = CommandType.Text;
dtAdapter.SelectCommand = objCmd;
dtAdapter.Fill(ds);
myGridView.DataSource = ds;
myGridView.DataBind();
dtAdapter = null;
objConn.Close();
objConn = null;
}
void myGridView_RowDataBound(Object s, GridViewRowEventArgs e)
{
Label lblAgen = (Label)(e.Row.FindControl("lblAgen"));
if (lblAgen != null)
{
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
}
Label lblName = (Label)(e.Row.FindControl("lblName"));
if (lblName != null)
{
lblName.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesName");
}
HyperLink hplDetail = (HyperLink)e.Row.FindControl("hplDetail");
if ((hplDetail != null))
{
hplDetail.NavigateUrl = "JavaScript:void(0);";
hplDetail.Attributes.Add("OnClick", "JavaScript:OpenPopup('popupDetailSchedule.aspx?AgenciesID=" + e.Row.DataItemIndex.ToString("AgenciesID").ToString() + "');");
}
HyperLink hplEdit = (HyperLink)(e.Row.FindControl("hplEdit"));
if (hplEdit != null)
{
hplEdit.NavigateUrl = "editmemberAdmin.aspx?AgenciesID=" + e.Row.DataItemIndex.ToString("AgenciesID").ToString();
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton l = (LinkButton)e.Row.FindControl("LinkButton1");
l.Attributes.Add("onclick", "javascript:return " + "confirm('คุณต้องการลบ รายชื่อ : " +
DataBinder.Eval(e.Row.DataItem, "AgenciesID") + "')");
}
}
void ShowPageCommand(Object s, GridViewPageEventArgs e)
{
myGridView.PageIndex = e.NewPageIndex;
BindData();
}
</script>
</script>
<script type="text/javascript">
function OpenPopup(url) {
popup = window.open(url, "mypopup", "location=1,status=1,scrollbars=1,width=700,height=700");
popup.moveTo(0, 0);
}
</script>
<html>
<head>
<title>ThaiCreate.Com ASP.NET - SQL Server</title>
</head>
<body>
<form id="form1">
<asp:GridView id="myGridView" PageSize="20"
OnPageIndexChanging="ShowPageCommand"
onRowDataBound="myGridView_RowDataBound"
AutoGenerateColumns="False" AllowPaging="True" runat="server" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3"
style="text-align: center; font-size: small">
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White"></HeaderStyle>
<Columns>
<asp:TemplateField HeaderText="รหัสหน่วยงาน">
<ItemTemplate>
<asp:Label id="lblAgen" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="รายชื่อหน่วยงาน">
<ItemTemplate>
<asp:Label id="lblName" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="รายละเอียด">
<ItemTemplate>
<asp:HyperLink ID="hplDetail" runat="server"><img src="images/view_detailed.png" width="18" height="18"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="แก้ไข">
<ItemTemplate>
<asp:HyperLink ID="hplEdit" runat="server"><img src="images/edit.png" width="18" height="18"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ลบ">
<ItemTemplate>
<asp:LinkButton id="LinkButton1" CommandName="Delete" runat="server"><img src="images/deletered.png" width="18" height="18"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#F1F1F1" />
<SortedAscendingHeaderStyle BackColor="#007DBB" />
<SortedDescendingCellStyle BackColor="#CAC9C9" />
<SortedDescendingHeaderStyle BackColor="#00547E" />
</asp:GridView>
</form>
</body>
</html> </td>
</tr>
<tr>
<td class="style11">
</td>
<td>
</td>
</tr>
</table>
</p>
</asp:Content>
Date :
2013-06-09 12:08:50
By :
Kaen17
ผิดที่ BindData รึเปล่านะ เปลี่ยนจาก DataSet เป็น DataTable
void BindData()
{
SqlConnection objConn = new SqlConnection();
SqlCommand objCmd = new SqlCommand();
SqlDataAdapter dtAdapter = new SqlDataAdapter();
DataTable dt = new DataTable();
String strConnString,strSQL;
strConnString = "Server=localhost;UID=sa;PASSWORD=12345;database=mydatabase;Max Pool Size=400;Connect Timeout=600;";
strSQL = "SELECT * FROM Agencies";
objConn.ConnectionString = strConnString;
objCmd.Connection = objConn;
objCmd.CommandText = strSQL ;
objCmd.CommandType = CommandType.Text;
dtAdapter.SelectCommand = objCmd;
dtAdapter.Fill(dt);
myGridView.DataSource = dt;
myGridView.DataBind();
dtAdapter = null;
objConn.Close();
objConn = null;
}
Date :
2013-06-09 12:38:02
By :
watcharop
เปลี่ยนเเล้วไม่ได้เหมือนเดิมครับ ><
Date :
2013-06-09 12:59:15
By :
Kaen17
งั้นลอง AutoGenerateColumns ว่ามีข้อมูลขึ้นมาไหม
<asp:GridView id="myGridView" PageSize="20"
AutoGenerateColumns="True" AllowPaging="True" runat="server" BackColor="White"
BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3"
style="text-align: center; font-size: small">
</asp:GridView>
Date :
2013-06-09 13:15:26
By :
watcharop
ไม่ได้เหมือนเดิมครับ
มันเกี่ยวกับ ที่ใน Database เก็บ AgenciesID เป็น int ให้มัน run auto ไหมครับ ? คือถ้า เก็บเป็น varchar เเละ ไม่ให้ run auto ไม่มีปัญหาครับ
Date :
2013-06-09 13:24:46
By :
Kaen17
Error ที่ตรงไหนล่ะ
ถ้าคุณเปลี่ยนโค้ดตามข้อ 17
มันไม่ควร Error เหมือนเดิมนะครับ
ไม่งั้นก็เอา Event RowDataBound ออกไปก่อน
Date :
2013-06-09 13:28:30
By :
watcharop
อ่อ ข้อมูลาครับ ขึ้นหมดครับ เเต่ error เเบบนี้ครับ
กดไปหน้า 2 error ครับ
เเละ พวก hpl ที่กดไป ลบ-เเก้ไข-ลายละเอียด ไปอยู่ข้างล่างขวาครับ
ประวัติการแก้ไข 2013-06-09 13:44:31 2013-06-09 13:45:18
Date :
2013-06-09 13:44:03
By :
Kaen17
ยอมล่ะ
ดูตัวอย่างของเว็บนี้ล่ะกัน
เข้าใจว่า TC Admin ทำไว้อยู่บ้างนะ
Date :
2013-06-09 14:36:03
By :
watcharop
ครับ ขอบคุณมากครับ
ที่มาช่วยตอบปัญหาเล็ก ๆของผม เดี๋ยวผมไม่เอา AgenciesID มา
เอา เเต่ AgenciesName พอครับ
Date :
2013-06-09 14:55:38
By :
Kaen17
ถ้าคุณหมายถึง AgenciesName ไม่มีปัญหา มีปัญหาแต่ AgenciesID ให้ลองแบบ
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID","{0}");
Date :
2013-06-09 15:01:45
By :
watcharop
ได้เฉยเลยครับ >< ขอบคุณมากครับ :)
Date :
2013-06-09 15:27:13
By :
Kaen17
ถ้าอย่างนั้น พึงระวังว่าหาก AgenciesName เป็นค่าว่าง (Null) ถ้าโค้ดของคุณไม่ใส่ {0} ก็น่าจะ Error ได้ เพราะฉะนั้นควรใส่ไว้ ยกเว้นคุณได้ตั้งกฎควบคุมตอนบันทึกแล้ว
lblName.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesName","{0}");
Date :
2013-06-09 15:50:20
By :
watcharop
จากหัวข้อของคำถาม เป็นข้อสังเกตุนะครับ
Error
lblAgen.Text = (string)DataBinder.Eval(e.Row.DataItem, "AgenciesID");
*****
Change To : lblAgen.Text = DataBinder.Eval(e.Row.DataItem, "AgenciesID").ToString();
OR
Change To : lblAgen.Text = (int)DataBinder.Eval(e.Row.DataItem, "AgenciesID").ToString();
OR
Change To : lblAgen.Text = Convert.ToString((int)DataBinder.Eval(e.Row.DataItem, "AgenciesID"));
*****
และตาม #NO 25 ครับ
Date :
2013-06-09 16:06:45
By :
ผ่านมา
อ่อ ขอบคุณมากครับ ได้ความรู้มากครับ ผมเพิ่งลองศึกษาครับ
Date :
2013-06-09 16:45:26
By :
Kaen17
Load balance : Server 01