实例失败

发表于: 07年12月31日 2007-12-31 22:50:18  评论    文章类别    字体大小 :

    今天用c#做东西,才写100行左右,居然有20几处错误,没法写下去了。都怪自己学的时候选了vb.NET,害得现在得转,今天写那几句都是平时查资料的时候拣的几个,关键是语法结构不怎么熟悉,出过错误都不知道错哪里了,大括号一串串,都不知道哪两个才是一家子。没法,只好换成VB.NET来完成任务了。
     直接把我以前用VB.NET写的一个数据库操作的类复制过来,可当我测试的时候,却提示“实例失败”,网上也搜索不到这方面的信息。郁闷了一会,一步一步检查,才发现问题出在我的连接字符串上。c#中的字符串中不准出现\(反斜杠),如果要用,必须对他们进行转义(用两个连续的\\反斜杠),我直接把c#中的连接字符串复制过来,使得字符串中多了一个\,导致在VB.NET中DataConnection无法创建数据库连接,所以提示"实例失败"。
     Some Code:
  用途:VB.NET连接数据库
  功能:执行sql;手工创建DataTable,并向其中添加列,填充数据。
下面是一个类

字体大小 :  
 Imports System
 Imports System .Text
 Imports System.Data
 Imports System.Data.SqlClient
 Imports System.Collections

Namespace Basic     Public Class mydata         Public Function strcon() As String             ' 返回连接字符串             strcon = "user id=用户名;password=密码;database=数据库名称;server=服务器名称;"             Return strcon         End Function         Public Function getdataset( ByVal strsql As String, ByVal tablename As String) As DataSet             ' 返回一个Dataset             Dim objDataSet As New DataSet()             Dim objCon As New SqlConnection(strcon())             Dim objAdapter As New SqlDataAdapter(strsql, objCon)             objAdapter.Fill(objDataSet, tablename)             Return objDataSet         End Function

        Public Function getarrylist( ByVal strsql As String, ByVal columnname As String) As ArrayList             ' 返回一个Arraylist              ' column是数据库中的字段名称             Dim alistResults As New ArrayList             Dim objCon As New SqlConnection(strcon())             Dim objCommand As New SqlCommand(strsql, objCon)             Dim objDataReader As SqlDataReader

            objCon.Open()             objDataReader = objCommand.ExecuteReader()

            Do While objDataReader. Read() = True                 alistResults.Add(objDataReader(columnname))             Loop

            objDataReader.Close()             objCon.Close()             Return alistResults         End Function

        Public Function getdatatable( ByVal strsql As String, ByVal tablename As String, ByVal column1 As String, ByVal column2 As String) As DataTable             ' 返回一个DataTable             '这个例子示例了如何手工创建DataTable,并向其中填充数据,column1和column2都是字段名称             Dim mytable As New DataTable(tablename)             Dim newcolumn1 As DataColumn             ' 创建新列, 设置 DataType, ColumnName             ' and add to DataTable.                newcolumn1 = New DataColumn()             newcolumn1.DataType = System.Type.GetType( "System. String")             newcolumn1.ColumnName = column1             newcolumn1. ReadOnly = True             newcolumn1.Unique = True             mytable.Columns.Add(newcolumn1)

            ' 创建第二个新列             Dim newcolumn2 As DataColumn             newcolumn2 = New DataColumn()             newcolumn2.DataType = System.Type.GetType( "System. String")             newcolumn2.ColumnName = column2             newcolumn2.AutoIncrement = False             newcolumn2. ReadOnly = True             newcolumn2.Unique = False             mytable.Columns.Add(column2)             REM 填充数据             Dim objCon As New SqlConnection(Me.strcon)             Dim objCommand As New SqlCommand(strsql, objCon)             Dim objDataReader As SqlDataReader             objCon.Open()             objDataReader = objCommand.ExecuteReader()             Do While objDataReader. Read() = True                 Dim mynewrow As DataRow                 mynewrow = mytable.NewRow                 mynewrow(0) = objDataReader(column1).ToString                 mynewrow(1) = objDataReader(column2).ToString                 mytable.Rows.Add(mynewrow)             Loop             objDataReader.Close()             objCon.Close()             Return mytable         End Function         Public Sub sqlcmd( ByVal strsql As String)             ' 此过程用于执行删除、更新、插入操作             Dim objCon As New SqlConnection(strcon())             Dim objCmd As New SqlCommand(strsql, objCon)             objCon.Open()             objCmd.ExecuteNonQuery()             objCon.Close()         End Sub     End Class End Namespace