我缺少什么来完成这个stringbuilder语句? [英] What am I missing to complete this stringbuilder statement?

查看:85
本文介绍了我缺少什么来完成这个stringbuilder语句?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我正在尝试使用字符串构建器为名字,姓氏和中间名创建更新语句。我遇到的问题是它不包括值和列的逗号。为了使其正常工作,我错过了什么?



So, I am trying to make a update statement using string builder for first name, last name and middle name. problem that I am having is that its not including the comma for the values and the columns. What am I missing to complete this statement to make it work appropriately?

 Using sqlconn As New SqlConnection("SQLstatement")
            Using da As New SqlDataAdapter(String.Empty, sqlconn)
                Dim sql As New StringBuilder("insert into [")
                sql.Append(Form1.TreeView1.SelectedNode.Text.Replace("]", "\]"))
                sql.Append("] ( ")

                Dim sbOn As New StringBuilder(") values( ")
                Dim andRequired As Boolean = False

                If Not String.IsNullOrEmpty(First_NameTextBox.Text) Then
                    sql.Append(" [First_name]")
                    sbOn.Append("@Firstname")
                    If andRequired Then
                        sbOn.Append(", ")
                    End If
                    da.SelectCommand.Parameters.AddWithValue("@Firstname", 
                    First_NameTextBox.Text)
                End If

                    If Not String.IsNullOrEmpty(Last_NameTextBox.Text) Then
                    sql.Append(" [Last_name]")
                    sbOn.Append("@Lastname")
                    If andRequired Then
                        sbOn.Append(", ")
                    End If
                    da.SelectCommand.Parameters.AddWithValue("@Lastname", 
                    Last_NameTextBox.Text)
                End If


                If Not String.IsNullOrEmpty(Middlenametextbox.Text) Then
                    sql.Append(" [Middle_name]")
                    sbOn.Append("@Middlename")
                    If andRequired Then
                        sbOn.Append(", ")
                    End If

                    da.SelectCommand.Parameters.AddWithValue("@Middlename", 
                    Middlenametextbox.Text)
                End If

sql.AppendFormat(sbOn.ToString + ")")





当我使用消息框运行它时会出现这种情况:



插入[table]([First_name] [Last_name] [Middle_name])值(@ First_name @ Last_name @ Middle_name)



你可以看到没有逗号,所以这是一个无效的sql语句。



我尝试过:



我试图在语句中使用布尔值来帮助,但它没有激活逗号。



This is what comes up when I run it with a messagebox:

"insert into [table] ([First_name] [Last_name] [Middle_name]) values(@First_name@Last_name@Middle_name)"

as you can see there is no comma, so this is an invalid sql statement.

What I have tried:

I have tried to use a boolean in the statement to help, but it's not activating the commas.

推荐答案

尝试这样的事情:

Try something like this:
If Not String.IsNullOrEmpty(First_NameTextBox.Text) Then
    If andRequired Then
        sql.Append(", ")
        sbOn.Append(", ")
    End If
    
    sql.Append("[First_name]")
    sbOn.Append("@Firstname")
    
    da.SelectCommand.Parameters.AddWithValue("@Firstname", First_NameTextBox.Text)
    andRequired = True
End If

If Not String.IsNullOrEmpty(Last_NameTextBox.Text) Then
    If andRequired Then
        sql.Append(", ")
        sbOn.Append(", ")
    End If
    
    sql.Append("[Last_name]")
    sbOn.Append("@Lastname")
    
    da.SelectCommand.Parameters.AddWithValue("@Lastname", Last_NameTextBox.Text)
    andRequired = True
End If

If Not String.IsNullOrEmpty(Middlenametextbox.Text) Then
    If andRequired Then
        sql.Append(", ")
        sbOn.Append(", ")
    End If
    
    sql.Append("[Middle_name]")
    sbOn.Append("@Middlename")
    
    da.SelectCommand.Parameters.AddWithValue("@Middlename", Middlenametextbox.Text)
    andRequired = True
End If


这篇关于我缺少什么来完成这个stringbuilder语句?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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