Drw("GCCODE")="200302020001"
Drw("Year")="2003"
Drw("Sequence")=1
Drw("GroupID")=1        Dim MyConnection As SqlConnection = New SqlConnection("server=(Local);database=TimeManager;Trusted_Connection=yes")
     
Dim MyCommand As SqlCommand = New SqlCommand("",MyConnection)
MyCommand.CommandType=CommandType.Text
MyCommand.CommandText=""

MyCommand.Connection.Open() Try    
   MyCommand.ExecuteNonQuery()
   Message.InnerHtml=""
        catch Exp As SQLException
   if Exp.Number=2627
      Message.InnerHtml="Can't Input the same key!"
   else
      Message.InnerHtml="no 2627"
   end if
   Message.Style("color")="red"
End Try
MyCommand.Connection.Close()
MyConnection.Close()

解决方案 »

  1.   

    I'm Sorry:
    发错了
    你检查一下字段的类型,如果是字符型一定要用引号包起来
    下面的代码是以前的
    Dim MyCommand As SqlCommand = New SqlCommand("",MyConnection)
    MyCommand.CommandType=CommandType.Text
    MyCommand.CommandText=""
    --〉
    Dim MyCommand As SqlCommand = New SqlCommand("",MyConnection)
    MyCommand.CommandType=CommandType.Text
    MyCommand.CommandText=你的插入记录的Sql串
      

  2.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataOleDbOleDbDataAdapterClassctorTopic3.asp
      

  3.   

    我的记录本来就都是数字型的:SQL> desc assetplan
     Name                            Null?    Type
     ------------------------------- -------- ----
     GCCODE                          NOT NULL NUMBER(12)
     YEAR                            NOT NULL NUMBER(4)
     GROUPID                         NOT NULL NUMBER(2)
     SEQUENCE                        NOT NULL NUMBER(4)
      

  4.   

    你的oleDbAdapter在书写的时候出了点问题,oleDbConnection中不应该是它的一个对象!
      

  5.   

    liuyong_lll(孤醉) 能讲明的点吗?
      

  6.   

    我按照 New_bug(Chen)的方法,结果出错:
    Sub BtnOK_Click(sender As Object,Ev As EventArgs)
    Dim Cnn as OleDbConnection=new OleDbConnection(DataConnectionString)
    Dim Da As OleDBDataAdapter=New OleDbDataAdapter("select * from assetPlan",Cnn)
    Da.InsertCommand=New OleDbCommand("Insert into AssetPlan(GCCODE,Year,GroupID,Sequence) values(?,?,?,?)",Cnn)
    Da.InsertCommand.Parameters.Add(@GCCODE,OleDbType.Integer,12,"GCCODE")
    Da.InsertCommand.Parameters.Add(@Year,OleDbType.Integer,12,"Year")
    Da.InsertCommand.Parameters.Add(@GroupID,OleDbType.Integer,2,"GroupID")
    Da.InsertCommand.Parameters.Add(@Sequence,OleDbType,Integer,4,"Sequence")
    Dim Ds As New DataSet
    Da.Fill(Ds,"assetPlan")
    Dim Drw As DataRow=Ds.Tables(0).NewRow
    Drw("GCCODE")=200302020001
    Drw("Year")=2003
    Drw("Sequence")=1
    Drw("GroupID")=1
    Ds.Tables(0).Rows.Add(Drw)
    Da.Update(Ds,"assetPlan")
    Ds.AcceptChanges()
    End Sub
    编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: BC30037: 字符无效。源错误: 行 73:  Dim Da As OleDBDataAdapter=New OleDbDataAdapter("select * from assetPlan",Cnn)
    行 74:  Da.InsertCommand=New OleDbCommand("Insert into AssetPlan(GCCODE,Year,GroupID,Sequence) values(?,?,?,?)",Cnn)
    行 75:  Da.InsertCommand.Parameters.Add(@GCCODE,OleDbType.Integer,12,"GCCODE")
    行 76:  Da.InsertCommand.Parameters.Add(@Year,OleDbType.Integer,12,"Year")
    行 77:  Da.InsertCommand.Parameters.Add(@GroupID,OleDbType.Integer,2,"GroupID")
     源文件: c:\inetpub\wwwroot\Gis\asset\startPlan.aspx    行: 75 显示详细的编译器输出:
    C:\WINNT\system32> "c:\winnt\microsoft.net\framework\v1.0.3705\vbc.exe" /t:library /utf8output /R:"c:\winnt\assembly\gac\system.xml\1.0.3300.0__b77a5c561934e089\system.xml.dll" /R:"c:\winnt\assembly\gac\system.data\1.0.3300.0__b77a5c561934e089\system.data.dll" /R:"c:\winnt\assembly\gac\system.web\1.0.3300.0__b03f5f7f11d50a3a\system.web.dll" /R:"c:\winnt\assembly\gac\system\1.0.3300.0__b77a5c561934e089\system.dll" /R:"c:\winnt\assembly\gac\system.web.services\1.0.3300.0__b03f5f7f11d50a3a\system.web.services.dll" /R:"c:\winnt\assembly\gac\system.enterpriseservices\1.0.3300.0__b03f5f7f11d50a3a\system.enterpriseservices.dll" /R:"c:\winnt\assembly\gac\system.drawing\1.0.3300.0__b03f5f7f11d50a3a\system.drawing.dll" /out:"C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\root\050a1654\638a5594\if1pqc6z.dll" /D:DEBUG=1 /debug+  "C:\WINNT\Microsoft.NET\Framework\v1.0.3705\Temporary ASP.NET Files\root\050a1654\638a5594\if1pqc6z.0.vb"
    Microsoft (R) Visual Basic .NET 编译器版本 7.00.9466
    用于 Microsoft (R) .NET 框架版本 1.00.3705
    版权所有 (C) Microsoft Corporation 1987-2001。保留所有权利。c:\inetpub\wwwroot\Gis\asset\startPlan.aspx(75) : error BC30037: 字符无效。    Da.InsertCommand.Parameters.Add(@GCCODE,OleDbType.Integer,12,"GCCODE")
                                        ~                                     
    c:\inetpub\wwwroot\Gis\asset\startPlan.aspx(76) : error BC30037: 字符无效。
     
      

  7.   

    可能是你的SQL语句存在问题
    YEAR 和 SEQUENCE 都是SQL 的保留字段
    建议用 [YEAR]  [SEQUENCE] 试试Sub BtnOK_Click(sender As Object,Ev As EventArgs)
    Dim Cnn as OleDbConnection=new OleDbConnection(DataConnectionString)
    Dim Da As OleDBDataAdapter=New OleDbDataAdapter("select * from assetPlan",Cnn)
    Da.InsertCommand=New OleDbCommand("Insert into AssetPlan(GCCODE,[Year],GroupID,[Sequence]) values(?,?,?,?)",Cnn)
    Da.InsertCommand.Parameters.Add(@GCCODE,OleDbType.Integer,12,"GCCODE")
    Da.InsertCommand.Parameters.Add(@Year,OleDbType.Integer,12,"[Year]")
    Da.InsertCommand.Parameters.Add(@GroupID,OleDbType.Integer,2,"GroupID")
    Da.InsertCommand.Parameters.Add(@Sequence,OleDbType,Integer,4,"[Sequence]")
    Dim Ds As New DataSet
    Da.Fill(Ds,"assetPlan")
    Dim Drw As DataRow=Ds.Tables(0).NewRow
    Drw("GCCODE")=200302020001
    Drw("[Year]")=2003
    Drw("[Sequence]")=1
    Drw("GroupID")=1
    Ds.Tables(0).Rows.Add(Drw)
    Da.Update(Ds,"assetPlan")
    Ds.AcceptChanges()
    End Sub