[Asp.net#VB]ช่วยหน่อยครับ แก้ไขข้อมูล จาก TextBox เข้า สู่ ฐานข้อมูลไม่ได้อ่ะครับ
[Asp.net#VB]ช่วยหน่อยครับ แก้ไขข้อมูล จาก TextBox เข้า สู่ ฐานข้อมูลไม่ได้อ่ะครับ
ผมทำการ ใช้ DataGrid ให้โชว์ ฐานข้อมูลเป้นตารางมี Command ว่า Select อยู่ ถ้า กด Select ค่าของแถวที่เลือกจะมา ปรากฏใน Textbox ที่กำหนดไว้
VB ที่ทำให้ เลือก จาก DataGrid มาโชว์ใน textbox ครับ
Me.lbluserid.Text = GridView1.SelectedRow.Cells(1).Text
Me.txtusername.Text = GridView1.SelectedRow.Cells(2).Text
Me.txtpassword.Text = GridView1.SelectedRow.Cells(3).Text
Me.txtname.Text = GridView1.SelectedRow.Cells(4).Text
Me.txtlastname.Text = GridView1.SelectedRow.Cells(5).Text
Me.txtemail.Text = GridView1.SelectedRow.Cells(6).Text
Me.txtaddress.Text = GridView1.SelectedRow.Cells(7).Text
Me.ddltype.Text = GridView1.SelectedRow.Cells(8).Text
คำสั่ง SQL
Code (ASP)
"UPDATE Member SET " & _
" ,UserID = '" & Me.lbluserid.Text & "' " & _
" ,Username = '" & Me.txtusername.Text & "' " & _
" ,Userpassword = '" & Me.txtpassword.Text & "' " & _
" ,Name = '" & Me.txtname.Text & "' " & _
" ,LastName = '" & Me.txtlastname.Text & "' " & _
" ,Email = '" & Me.txtemail.Text & "' " & _
" ,Address = '" & Me.txtaddress.Text & "' " & _
" ,Type = '" & Me.ddltype.Text & "' " & _
ไม่ทรายจะเขียน Code ให้ อัพเดต ยังไงอ่ะครับTag : ASP.NET, Ms SQL Server 2008, Web (ASP.NET), VB.NET
Date :
2010-09-26 01:38:47
By :
HelpMe
View :
2472
Reply :
10
ขอบคุณครับ
แต่มันยังไม่อัพเดตอ่ะครับ ผมลอง เอา Code ตามที่ ในเว็ปสอนมาช่วย จัดการปุ่ม บันทึกข้อมูลครับ
ไม่ทราบมีอะไรผิดเปล่าครับ
Code (VB.NET)
Protected Sub btnsave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnsave.Click
strSQL = "UPDATE Member SET " & _
" UserID = '" & Me.lbluserid.Text & "' " & _
" ,Username = '" & Me.txtusername.Text & "' " & _
" ,Userpassword = '" & Me.txtpassword.Text & "' " & _
" ,Name = '" & Me.txtname.Text & "' " & _
" ,LastName = '" & Me.txtlastname.Text & "' " & _
" ,Email = '" & Me.txtemail.Text & "' " & _
" ,Address = '" & Me.txtaddress.Text & "' " & _
" ,Type = '" & Me.ddltype.Text & "' " & _
" WHERE Username = '" & Request.QueryString("Username") & "' "
objCmd = New SqlCommand
With objCmd
.Connection = objConn
.CommandText = strSQL
.CommandType = CommandType.Text
End With
Me.Panel1.Visible = False
Try
objCmd.ExecuteNonQuery()
Me.lblStatus.Text = "Record Updated"
Me.lblStatus.Visible = True
Catch ex As Exception
Me.lblStatus.Text = "Record can not update"
End Try
End Sub
Code (VB.NET)
Dim objConn As New SqlConnection
Dim objCmd As New SqlCommand
Dim dtReader As SqlDataReader
Dim strConnString, strSQL As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
strConnString = "Data Source=DELL_BLUE-PC;Initial Catalog=Project;Integrated Security=True"
objConn.ConnectionString = strConnString
objConn.Open()
If Not Page.IsPostBack() Then
ViewData()
End If
End Sub
Date :
2010-09-26 12:12:33
By :
xxx
" WHERE Username = '" & Request.QueryString("Username") & "' "
ต้องมาจาก datakey ของ gridview ที่ส่งมาตอน select
ลอง debug Request.QueryString("Username") ดูว่ามีค่าอะไร
Date :
2010-09-27 08:37:18
By :
tungman
ผมเปลี่ยนเป็น
" WHERE UserID = '" & Request.QueryString("UserID") & "' "
เพราะ UserID เป็น PK ของ ตารางอ่ะครับ
ไม่ทราบจะให้ debug ค่าออกมายังไงอ่ะครับ
เอามาให้ดูอีก Code ครับ
Code (ASP)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="UserID"
DataSourceID="SqlMemberSelect">
<Columns>
<asp:CommandField
ShowSelectButton="True" />
<asp:BoundField DataField="UserID" HeaderText="UserID" InsertVisible="False"
ReadOnly="True" SortExpression="UserID" />
<asp:BoundField DataField="UserName" HeaderText="UserName"
SortExpression="UserName" />
<asp:BoundField DataField="UserPassword" HeaderText="UserPassword"
SortExpression="UserPassword" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Lastname" HeaderText="Lastname"
SortExpression="Lastname" />
<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email" />
<asp:BoundField DataField="Address" HeaderText="Address"
SortExpression="Address" />
<asp:BoundField DataField="Typeid" HeaderText="Typeid"
SortExpression="Typeid" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlMemberSelect" runat="server"
ConnectionString="<%$ ConnectionStrings:ProjectConnectionString %>"
SelectCommand="SELECT * FROM [Member]">
</asp:SqlDataSource>
ประวัติการแก้ไข 2010-09-27 11:34:08 2010-09-27 12:13:50 2010-09-27 12:14:37
Date :
2010-09-27 11:06:09
By :
ang89gunner
Response.Write
Date :
2010-09-27 12:08:57
By :
tungman
ลองแล้วค่า Request.QueryString("UserID") ไม่โชว์ครับ
เลยลอง lblStatus.Text = strSQL
เวลากด save จะขึ้น ว่า
UPDATE Member SET UserID = '21' ,Username = 'qqq' ,Userpassword = 'qqqq' ,Name = 'sadasdf' ,LastName = 'asdasds' ,Email = 'dasd' ,Address = 'asd' ,Type = '2' WHERE UserID = ''
อ่ะครับ เป็นค่า ที่ มาจาก Textbox
คือว่า ค่า UserID ผมให้มันแสดงใน Labal เพิ่มไม่ได้แก้ไขได้เพราะ เป็น PK ไม่ทรราบว่าเกี่ยวไหมครับ
Date :
2010-09-27 12:41:20
By :
ang89gunner
ดูตัวอย่าง tutorial เยอะๆ ครับโค้ดมั่วมาก
Code (VB.NET)
strSQL = "UPDATE [Member] SET [Username]=@UserName ,[Userpassword]=@UserPassword ,[Name]=@Name ,[LastName]=@LastName ,[Email]=@Email ,[Address]=@Address ,[Type]=@Type WHERE [UserID]=@USerID"
objCmd = New SqlCommand(strSQL, objConn)
objCmd.Parameters.AddWithValue("@UserName", Me.txtusername.Text)
objCmd.Parameters.AddWithValue("@UserPassword", Me.txtpassword.Text)
objCmd.Parameters.AddWithValue("@Name", Me.txtname.Text)
objCmd.Parameters.AddWithValue("@LastName", Me.txtlastname.Text)
objCmd.Parameters.AddWithValue("@Email", Me.txtemail.Text)
objCmd.Parameters.AddWithValue("@Address", Me.txtaddress.Text)
objCmd.Parameters.AddWithValue("@Type", Me.ddltype.SelectedIndex.Text)
objCmd.Parameters.AddWithValue("@USerID", Me.lbluserid.Text)
Try
If objconn.State = ConnectionState.Open Then
objconn.Close()
End If
objconn.Open()
objCmd.ExecuteNonQuery()
objconn.Close()
Me.lblStatus.Text = "Record Updated"
Me.lblStatus.Visible = True
Catch ex As Exception
Me.lblStatus.Text = "Record can not update. Because: " & ex.Message
End Try
Date :
2010-09-27 16:21:56
By :
tungman
ขอขอบพระคุณพี่ tungman
ว่าแต่ตรง ddltype.SelectedIndex.Text มันขึ้น Error ผมแก้เป้น ddltype.Text ได้ใช้ไหมครับ คือ ตัว ddltype ผมได้ต่อกับ ฐานข้อมูล Type ไว้แล้วที่หน้า aspx อ่ะครับ
ปล. รันแล้วก็ขึ้นเลขครับ
เดียวจะลอง เวลาใช้ Control CompareValidator มาเปรียบเทียบ ค่าที่ กรอกเวลาแก้ ไข นะครับ
กับ Select แล้วลบ
ถ้ามีไร รบกวนด้วยนะครับ
ขอบคุณคุณ tungman มากครับ (ช่วยผมหลายเรื่องแล้ว)
Date :
2010-09-27 16:37:14
By :
ang89gunner
รบกวนสอบถามพี่ o0WereWolf0o หน่อยค่ะ
คือมีปัญหาแบบเดียวกันเลยอ่าค่ะ รบกวนขอดูโค๊ดที่แก้ไขแล้วหน่อยอ่าค่าา
ขอบคุณล่วงหน้านะคะพี่ o0WereWolf0o
Date :
2013-05-07 11:16:30
By :
Fon
คือเวลาแก้ไขข้อมูลจาก textbox แล้ว
ตอนกดปุ่ม save ค่าที่แก้ไขแล้วลงฐานข้อมูล มันเอาข้อมูลที่ select ได้ไปลงฐานข้อมูลอ่าค่ะ
โดยที่ไม่ยอมเอาค่าที่่เราแก้ไขไปลงฐานข้อมูลอ่าค่ะ
Date :
2013-05-07 11:28:28
By :
Fon
Load balance : Server 02