Public Sub ExecNonSql(ByVal sqlstr As String)
        If myConn.State = ConnectionState.Closed Then
            myConn.Open()
        End If
        myCmd = New SqlCommand(sqlstr, myConn)
        myCmd.ExecuteNonQuery()                     //就这行
        myCmd.Dispose()
        Close()
    End Sub帮看看上边这段是否有语法错误啊 为什么我在执行后边添加书籍时 如果写了价钱就没有错误,如果不写价钱就出现上边的错误提示啊??

解决方案 »

  1.   

    Public Class AddBook
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents DpStyle As System.Web.UI.WebControls.DropDownList
        Protected WithEvents AddBtn As System.Web.UI.WebControls.LinkButton
        Protected WithEvents ResetBtn As System.Web.UI.WebControls.LinkButton
        Protected WithEvents txtBookName As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtBookAuthor As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtPubName As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtSeries As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtSubject As System.Web.UI.WebControls.TextBox
        Protected WithEvents DpLanguage As System.Web.UI.WebControls.DropDownList
        Protected WithEvents txtUploadDate As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtSearchNO As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtPubDate As System.Web.UI.WebControls.TextBox
        Protected WithEvents DpBookState As System.Web.UI.WebControls.DropDownList
        Protected WithEvents CompareValidator1 As System.Web.UI.WebControls.CompareValidator
        Protected WithEvents CompareValidator2 As System.Web.UI.WebControls.CompareValidator
        Protected WithEvents txtISBN As System.Web.UI.WebControls.TextBox
        Protected WithEvents txtPrice As System.Web.UI.WebControls.TextBox
        Protected WithEvents Comparevalidator3 As System.Web.UI.WebControls.CompareValidator
        Protected WithEvents txtBarCode As System.Web.UI.WebControls.TextBox    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
        End Sub    Private Sub AddBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddBtn.Click
            Dim obj As DBController = New DBController
            Dim sqlstr As String = ""
            sqlstr = "INSERT INTO BookInfo"
            sqlstr += "(BookName, PubName, BookAuthor, BookStyle, UploadDate, Series, Subject, Language, ISBN, SearchNO, PubDate, BookState,Price,BarCode)"
            sqlstr += "VALUES( "
            sqlstr += "'" + txtBookName.Text.ToString.Trim + "',"
            sqlstr += "'" + txtPubName.Text.ToString.Trim + "',"
            sqlstr += "'" + txtBookAuthor.Text.ToString.Trim + "',"
            sqlstr += "'" + DpStyle.SelectedValue.ToString.Trim + "',"
            sqlstr += "'" + txtUploadDate.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSeries.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSubject.Text.ToString.Trim + "',"
            sqlstr += "'" + DpLanguage.SelectedValue.ToString.Trim + "',"
            sqlstr += "'" + txtISBN.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSearchNO.Text.ToString.Trim + "',"
            sqlstr += "'" + txtPubDate.Text.ToString.Trim + "',"
            sqlstr += DpBookState.SelectedValue.ToString.Trim + ","
            sqlstr += txtPrice.Text.ToString.Trim + ","
            sqlstr += "'" + txtBarCode.Text.ToString.Trim + "')"
            obj.Open()
            obj.ExecNonSql(sqlstr)
            obj.Close()    End Sub    Private Sub ResetBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ResetBtn.Click
            Response.Redirect("AddBook.aspx")
        End Sub
    End Class
      

  2.   

    sqlstr是什么?
    错误提示呢?
      

  3.   

    函 数 名:ExecNonSql
        ' 功能描述:执行无返回值的数据库操作
        ' 输入参数:sqlstr,查询的SQL字符串
        ' 返 回 值:无
        ' 创建日期:2004-8-12
        ' 修改日期:2004-8-12
        ' 作    者:
        ' 附加说明:
        '==============================================================
        Public Sub ExecNonSql(ByVal sqlstr As String)
            If myConn.State = ConnectionState.Closed Then
                myConn.Open()
            End If
            myCmd = New SqlCommand(sqlstr, myConn)
            myCmd.ExecuteNonQuery()
            myCmd.Dispose()
            Close()
        End Sub下边是出错提示
    第 1 行: ',' 附近有语法错误。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: ',' 附近有语法错误。源错误: 
    行 52:         End If
    行 53:         myCmd = New SqlCommand(sqlstr, myConn)
    行 54:         myCmd.ExecuteNonQuery()
    行 55:         myCmd.Dispose()
    行 56:         Close()
     源文件: F:\gl\Library\Common\DBController.vb    行: 54 
      

  4.   

    如果你不输入价钱
    则变成了insert into BookInfo(PubDate, BookState,Price,BarCode) values('',,'')
    如果你输入价钱
    则变成了insert into BookInfo(PubDate, BookState,Price,BarCode) values('',10.00,'')
    所以,如果Price是varchar类型的则
    把sqlstr += txtPrice.Text.ToString.Trim + ","
    改为
    sqlstr += "'"+ txtPrice.Text.ToString.Trim + "'","
    如果Price是int类型的则要么提示txtPrice.Text必须输,要么转换为0
      

  5.   

    Private Sub AddBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddBtn.Click
            Dim obj As DBController = New DBController
            Dim sqlstr As String = ""
            sqlstr = "INSERT INTO BookInfo"
            sqlstr += "(BookName, PubName, BookAuthor, BookStyle, UploadDate, Series, Subject, Language, ISBN, SearchNO, PubDate, BookState,Price,BarCode)"
            sqlstr += "VALUES( "
            sqlstr += "'" + txtBookName.Text.ToString.Trim + "',"
            sqlstr += "'" + txtPubName.Text.ToString.Trim + "',"
            sqlstr += "'" + txtBookAuthor.Text.ToString.Trim + "',"
            sqlstr += "'" + DpStyle.SelectedValue.ToString.Trim + "',"
            sqlstr += "'" + txtUploadDate.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSeries.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSubject.Text.ToString.Trim + "',"
            sqlstr += "'" + DpLanguage.SelectedValue.ToString.Trim + "',"
            sqlstr += "'" + txtISBN.Text.ToString.Trim + "',"
            sqlstr += "'" + txtSearchNO.Text.ToString.Trim + "',"
            sqlstr += "'" + txtPubDate.Text.ToString.Trim + "',"
            sqlstr += DpBookState.SelectedValue.ToString.Trim + ","
            sqlstr += "'"+ txtPrice.Text.ToString.Trim + "',"
            sqlstr += "'" + txtBarCode.Text.ToString.Trim + "')"
            obj.Open()
            obj.ExecNonSql(sqlstr)
            obj.Close()
        End Sub
    覆盖回去,保你正确