今天用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.CollectionsNamespace 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