我在数据库中更改密码的功能无效 [英] My function to change a password in the database isn't working

查看:146
本文介绍了我在数据库中更改密码的功能无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

每当我尝试更新现有密码并在数据库中更改时,都会收到如下所述的错误(在我试过的内容部分中)。

数据库中的表Customer_Detail如下:

LoginID int PK;

EmailAddress varchar;

密码varchar;

名称varchar;

DOB日期;

我无法弄清楚出了什么问题。

任何帮助都将不胜感激!



我尝试了什么:



这就是我调用函数的方式:

 受保护的  Sub  Button1_Click(sender 作为 对象,e 作为 EventArgs)句柄 Button1.Click 
Dim p As Class1
Dim nbrrowUpdated As Data.DataTable
如果 Me .TextBox2.Text = Me .TextBox3.Text)然后
nbrrowUpdated = p.update(Label2.Text, Me .TextBox3.Text)
Me .GridView1.DataSource = nbrrowUpdated
Me .GridView1.DataBind()

结束 如果
结束 Sub



这是函数的代码:



 公共 功能更新( ByVal 电子邮件作为 字符串 ByVal  pas 作为 字符串作为 DataTable 
Dim strConnectionString As String
Dim instsqlconnection As SqlConnection

strConnectionString = Integrated Security = SSPI; Initial Catalog = Shop; Data Source =。

instsqlconnection = SqlConnection(strConnectionString)
instsqlconnection.Open()

Dim da As SqlDataAdapter( 选择*来自Customer_Detail,instsqlconnection)
Dim ds 作为 DataSet()

da.Fill(ds, login
Dim tbl < span class =code-keyword> As DataTable = ds.Tables( login
instsqlconnection.Close()
' ========== ================================================== ======
Dim primarykeycolumns( 0 As DataColumn
primarykeycolumns( 0 )= tbl.Columns( LoginID
tbl.PrimaryKey = primarykeycolumns
' == ================================================== =======================
Dim drCurrent As DataRow
Dim cmdBuilder As SqlCommandBuilder = SqlCommandBuilder(da)

drCurrent = tbl.Rows.Find(Email)
drCurrent.BeginEdit()
drCurrent( 密码)= pas
drCurrent.EndEdit()
< span class =code-comment>' 以下更新方法使数据库更新
da.Update(ds, login
返回 ds.Tables( 0

da.AcceptChangesDuringUpdate =



结束 功能





我收到此错误:输入字符串的格式不正确。

此行出现错误:

 drCurrent = tbl.Rows.Find(Email)

解决方案

我通过将LoginID替换为EmailAddress来解决问题:

 primarykeycolumns( 0 )= tbl.Columns(  LoginID





密码现在已正确更改,但有其他方法可以解决此问题吗?因为LoginID是sql表中的Primarykey,是否有使用的替代方法:

 drCurrent = tbl.Rows.Find(Email)

??


Everytime i try to update an existing password and change it in the database t get an error which is stated below( in the "what i tried" section).
The Table Customer_Detail in my database is as follows:
LoginID int PK;
EmailAddress varchar;
Password varchar;
Name varchar;
DOB Date;
I can't figure out what is wrong.
Any help will be appreciated!

What I have tried:

This is how i am calling the function:

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim p As New Class1
        Dim nbrrowUpdated As Data.DataTable
        If (Me.TextBox2.Text = Me.TextBox3.Text) Then
            nbrrowUpdated = p.update(Label2.Text, Me.TextBox3.Text)
            Me.GridView1.DataSource = nbrrowUpdated
            Me.GridView1.DataBind()
        
        End If
    End Sub


This is the code of the function:

Public Function update(ByVal Email As String, ByVal pas As String) As DataTable
       Dim strConnectionString As String
       Dim instsqlconnection As SqlConnection

       strConnectionString = "Integrated Security=SSPI;Initial Catalog=Shop;Data Source=."

       instsqlconnection = New SqlConnection(strConnectionString)
       instsqlconnection.Open()

       Dim da As New SqlDataAdapter("Select * From Customer_Detail", instsqlconnection)
       Dim ds As New DataSet()

       da.Fill(ds, "login")
       Dim tbl As DataTable = ds.Tables("login")
       instsqlconnection.Close()
       '==================================================================
       Dim primarykeycolumns(0) As DataColumn
       primarykeycolumns(0) = tbl.Columns("LoginID")
       tbl.PrimaryKey = primarykeycolumns
       '===========================================================================
       Dim drCurrent As DataRow
       Dim cmdBuilder As SqlCommandBuilder = New SqlCommandBuilder(da)

       drCurrent = tbl.Rows.Find(Email)
       drCurrent.BeginEdit()
       drCurrent("Password") = pas
       drCurrent.EndEdit()
       'The following update method make the database update
       da.Update(ds, "login")
       Return ds.Tables(0)

       da.AcceptChangesDuringUpdate = True



   End Function



I a getting an this error:"Input string was not in a correct format."
Error appearing at this line:

drCurrent = tbl.Rows.Find(Email)

解决方案

I fixed the problem by replacing the "LoginID" to "EmailAddress" in :

primarykeycolumns(0) = tbl.Columns("LoginID")



Password is changed correctly now but is there another way to fix this? because LoginID is the Primarykey in the sql table, Is there an alternative to using :

drCurrent = tbl.Rows.Find(Email)

??


这篇关于我在数据库中更改密码的功能无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆