注册 登录
编程论坛 VB.NET论坛

問下在vb2005里是這樣寫的不

jxyga111 发布于 2008-11-18 11:08, 2062 次点击
這是插入語句:sqlcmd.ExecuteReader("insert into t_login(id) values('" & CStr(Trim(TextBox1.Text)) & "'")
但是卻出錯不明白那里有問題
19 回复
#2
谁与争疯2008-11-18 17:34
为什么多了半边的)
#3
fairy42008-11-18 17:49
sqlcmd.ExecuteReader("insert into t_login (id) values ('" & CStr(Trim(TextBox1.Text)) & "')")
#4
jxyga1112008-11-18 18:55
一樣提示
ID的類型是varchar(50)
'從字串 "insert into t_login (id) values " 至型別 'Integer' 的轉換是無效的。
#5
fairy42008-11-19 16:22
Dim strCommText01 As String
        Dim daTempComm01 As OleDb.OleDbCommand
        strCommText01 = "INSERT INTO [testData] (test1) VALUES ('" & CStr(Trim(TextBox1.Text)) & "');"
        daTempComm01 = New OleDb.OleDbCommand
        daTempComm01.Connection = cnnDB
         = strCommText01
        daTempComm01.ExecuteNonQuery()
#6
fairy42008-11-19 16:23
害得我还帮你建立了个表来测试!
#7
jxyga1112008-11-19 17:09
Dim strcmd As String
        Dim sqlcn As SqlConnection = New SqlConnection(strcon)
        sqlcn.Open()
        strcmd = "select id from t_login"
        Dim sqlcmd As SqlCommand = New SqlCommand(strcmd, sqlcn)
        Dim dr As SqlDataReader
        dr = sqlcmd.ExecuteReader
        Do While dr.Read
            If Trim(TextBox1.Text) = dr.Item(0) Then
                MsgBox("該用戶名已存在!")
                Exit Sub
            Else
                Dim sqlcmdcommandtext As String
                sqlcn.Close()
                sqlcn.Open()
                sqlcmdcommandtext = "insert into t_login (id) values ('" & CStr(Trim(TextBox1.Text)) & "')"
                sqlcmd.ExecuteNonQuery()

                MsgBox("申請成功,請登入!")
                Exit Sub
            End If
        Loop


謝謝你了,這是我做的,你幫忙看下有什么問題
#8
fairy42008-11-20 09:24
在 sqlcmd.ExecuteNonQuery()前面加上这么一句:
   = sqlcmdcommandtext
         就应该没有问题了
你是不是从vb转过来的哦?为什么会用Do While dr.Read  ?
#9
jxyga1112008-11-20 09:29
回复 8# 的帖子
是的並且是剛轉
#10
jxyga1112008-11-20 09:33
謝謝可以了
#11
fairy42008-11-20 09:36
如果是我的话,我会这样用:
Dim strcon As String = "***********************************************"'数据库连接字串
        '  Dim strcmd As String
        Dim sqlcn As SqlClient.SqlConnection = New SqlClient.SqlConnection(strcon)
        sqlcn.Open()
        Dim dsTemp01 As DataSet
        Dim daTemp01 As SqlClient.SqlDataAdapter
        Dim rw01 As DataRow
        Dim daTempComm01 As SqlClient.SqlCommandBuilder
        Dim z As Integer
        dsTemp01 = New DataSet
        daTemp01 = New SqlClient.SqlDataAdapter("select * from [testData] where [test1]='" & CStr(Trim(TextBox1.Text)) & "';", sqlcn)
        daTemp01.Fill(dsTemp01, "datalist") 'dsTemp01数据集中数据表名
        z = dsTemp01.Tables(0).Rows.Count
        If z > 0 Then
            MsgBox("該用戶名已存在!")
        Else
           '当然这里可以用插入语句,不一定要用添加新行的方法
            rw01 = dsTemp01.Tables("datalist").NewRow
            rw01("test1") = CStr(Trim(TextBox1.Text))
            dsTemp01.Tables("datalist").Rows.Add(rw01)
            daTempComm01 = New SqlClient.SqlCommandBuilder(daTemp01)
            daTemp01.Update(dsTemp01, "datalist")
            MsgBox("申請成功,請登入!")
        End If
#12
jxyga1112008-11-20 11:35
Try
Catch ex As Exception
End Try
這是什么語法
#13
fairy42008-11-20 12:38
[bo][un]jxyga111[/un] 在 2008-11-20 11:35 的发言:[/bo]

Try
Catch ex As Exception
End Try
這是什么語法


获取错误

Try
Catch ex As Exception块中代码有问题时,获取到该错误,然后执行
Catch ex As Exception
End Try块之间的代码
#14
jxyga1112008-11-20 13:33
也就是說當錯誤時就運行,而end try 是結束try過程的
#15
ggvboy2008-11-20 15:33
版主?!中级会员?!恩!!
#16
fairy42008-11-21 08:49
[bo][un]jxyga111[/un] 在 2008-11-20 13:33 的发言:[/bo]

也就是說當錯誤時就運行,而end try 是結束try過程的

错,只能说当你的try 与 Catch ex As Exception 之间的代码执行出错时,系统获取到该错误,跳出这段代码,转而执行  Catch ex As Exception  与 end  try之间的语句。
如果没有try语句的话,系统是直接抛出错误的
#17
jxyga1112008-11-22 11:24
Try
            If mydataset.Tables("t_login").Rows(0).Item(1) = Trim(TextBox2.Text) Then
                userinf(0) = Trim(TextBox1.Text)
                userinf(1) = Trim(TextBox2.Text)
            Else
                MsgBox("密码错误")
                TextBox2.Text = ""
                Exit Sub
            End If

        Catch ex As Exception
            MsgBox("用户不存在")
            TextBox1.Text = ""
            TextBox2.Text = ""
            Label3.Text = ""
        End Try
那麼祂這里什么意思啊,祂里面代碼完全沒問題啊
#18
fairy42008-11-22 12:04
是吗?
如果你的系统里面没有这个用户
即mydataset.Tables的记录行数为0,则你这样用 mydataset.Tables("t_login").Rows(0).Item(1) 就会报错,
那么,就会执行MsgBox("用户不存在")
            TextBox1.Text = ""
            TextBox2.Text = ""
            Label3.Text = ""
的语句了
#19
小米小南2008-11-23 05:31
[bo][un]fairy4[/un] 在 2008-11-20 09:36 的发言:[/bo]

如果是我的话,我会这样用:
Dim strcon As String = "***********************************************"'数据库连接字串
        '  Dim strcmd As String
        Dim sqlcn As SqlClient.SqlConnection = New ...

哦哈哈
#20
jxyga1112008-11-24 08:28
回复 第18楼 fairy4 的帖子
謝謝啦,我已經理解了
請問這個是什么意思這個在書上無解釋
try
if a<>a then a=b
Catch ex As Exception
if a=a then a=a
Finally
SqlConnection1.Close()
end try
1