能方便的 *** 作数据记录, 但如果不需要界面,仅需要实现连接数据库,然后做些删除,更新,添加的功能,则使用ADO对象较好。 使用 ADO Data 控件 ADO Data 控件使用 Microsoft ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。 尽管可以在应用程序中直接使用 ActiveX 数据对象,但 ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。 图 74 ADO Data 控件 在 Visual Basic 的“工具箱”中不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、框、以及文本框控件等。此外,Visual Basic 还包括了若干种数据绑定的 ActiveX 控件,诸如 DataGrid、DataCombo、Chart、以及 DataList 控件等。用户也可以创建自己的数据绑定的 ActiveX 控件,或从其他开发商购买控件。 Visual Basic以前的版本提供了内在的 Data 控件和 Remote Data 控件 (RDC) 来进行数据访问。这两种控件仍包括在 Visual Basic 中,以提供向后兼容。不过,因为 ADO 的适应性更广,因此建议用户使用 ADO Data 控件来创建新的数据库应用程序。 详细信息 关于数据绑定的控件的完整列表位于“绑定到 ADO Data 控件的控件”中。要了解如何使用这些内在的Data 控件或 Remote Data 控件,请参阅“使用 Data 控件”或“使用 Remote Data 控件”。关于创建数据提供者的详细信息,请参阅“创建数据识别类”。 可能的用法 连接一个本地数据库或远程数据库。 打开一个指定的数据库表,或定义一个基于结构化查询语言 (SQL) 的查询、或存储过程、或该数据库中的表的视图的记录集合。 将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。 添加新的记录,或根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。 要创建一个客户、或前端数据库应用程序,应在窗体中添加 ADO Data 控件,以及其它所需要的任何 Visual Basic 控件。可以根据您的需要在窗体中放置多个 ADO Data 控件。不过,请注意,这种控件是一种相当“昂贵”的创建连接的方法,应在第一个控件至少有两个连接,且以后的每个控件至少多一个连接时使用。 用最少的代码创建一个前端数据库应用程序 通过在设计时设置一些属性,可以用最少的代码来创建一个数据库应用程序。如果正在使用OLE DB 数据源,则相应的Microsoft 数据链接名称(Data Link Name)(MDL) 必须是在您的机器上创建的。请参阅“创建 Northwind 的OLE DB Data Link”,以获得一个循序渐进的示例。 要创建一个简单的前端数据库应用程序 窗体上放置一个 ADO Data 控件。(该图标的工具提示为 "ADODC"。) 如果该控件不在“工具箱”中,请按 CTRL+T 键,显示“部件”对话框。在这个“部件”对话框中,单击“Microsoft ADO Data Control”。在“工具箱”中,单击选定“ADO 数据控件”。然后按 F4 键显示“属性”窗口。
把错误信息发上来,你用的什么版本的Access?
试试把连接字符串改为
Provider=MicrosoftJetOLEDB40; Data Source=|DataDirectory|\data\antomdb; user id=admin;Jet OLEDB:database password=12345access 2007 标准连接串
Provider=MicrosoftACEOLEDB120;Data Source=C:\myFolder\myAccess2007fileaccdb;Persist Security Info=False;
access 2003 标准连接串
Provider=MicrosoftACEOLEDB120;Data Source=C:\myFolder\myAccess2007fileaccdb;Persist Security Info=False;Provider=MicrosoftJetOLEDB40;Data Source=|DataDirectory|\myDatabasemdb;
User Id=admin;Password=;
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemData;
using SystemDataSQLite;
namespace DAL
{
static class SqlHelper
{
private static bool Conn = false;
private static string ConnStr = @"Data Source=FileName;Pooling=true;FailIfMissing=false";
static SqlHelper()
{
Conn = TestConn();
}
public static bool Update(string SQL, params SqlParameter[] SqlParameters)
{
bool Result = false;
if (Conn)
using (SQLiteConnection SqlConn = new SQLiteConnection(ConnStr))
{
SqlConnOpen();
using (SQLiteCommand SqlCmd = new SQLiteCommand(SQL, SqlConn))
{
if (SQLiteParameters != null)
SqlCmdParametersAddRange(SqlParameters);
Result = SQLiteCmdExecuteNonQuery() > 0;
}
}
return Result;
}
public static T Scalar<T>(string SQL, params SQLiteParameter[] SqlParameters)
{
object Result = null;
if (Conn)
using (SQLiteConnection SqlConn = new SQLiteConnection(ConnStr))
{
SqlConnOpen();
using (SQLiteCommand SqlCmd = new SQLiteCommand(SQL, SqlConn))
{
if (SQLiteParameters != null)
SqlCmdParametersAddRange(SqlParameters);
Result = SqlCmdExecuteScalar();
}
}
return (Result != null) (T)Result : default(T);
}
public static DataTable Query(string SQL, params SQLiteParameter[] SqlParameters)
{
DataTable Result = null;
if (Conn)
using (SQLiteConnection SqlConn = new SQLiteConnection(ConnStr))
{
SqlConnOpen();
using (SQLiteCommand SqlCmd = new SQLiteCommand(SQL, SqlConn))
{
if (SqlParameters != null)
SqlCmdParametersAddRange(SqlParameters);
using (SQLiteDataAdapter SqlAdap = new SQLiteDataAdapter(SqlCmd))
using (DataSet ds = new DataSet())
{
SqlAdapFill(ds);
Result = dsTables[0];
}
}
}
return Result;
}
private static bool TestConn()
{
bool TestResult = false;
try
{
using (SQLiteConnection SqlConn = new SQLiteConnection(ConnStr))
SqlConnOpen();
TestResult = true;
}
catch
{
TestResult = false;
}
return TestResult;
}
}
}
using System;
using SystemCollections;
using SystemCollectionsSpecialized;
using SystemData;
using SystemDataSqlClient;
using SystemConfiguration;
using SystemDataCommon;
using SystemCollectionsGeneric;
namespace CeptAutoDBUtility
{
/// <summary>
/// 数据访问抽象基础类
/// Copyright (C) 2004-2008 By LiTianPing
/// </summary>
public abstract class DbHelperSQL
{
//数据库连接字符串(webconfig来配置),可以动态更改connectionString支持多数据库
public static string connectionString = PubConstantConnectionString;
public DbHelperSQL()
{
}
#region 公用方法
/// <summary>
/// 判断是否存在某表的某个字段
/// </summary>
/// <param name="tableName">表名称</param>
/// <param name="columnName">列名称</param>
/// <returns>是否存在</returns>
public static bool ColumnExists(string tableName, string columnName)
{
string sql = "select count(1) from syscolumns where [id]=object_id('" + tableName + "') and [name]='" + columnName + "'";
object res = GetSingle(sql);
if (res == null)
{
return false;
}
return ConvertToInt32(res) > 0;
}
public static int GetMaxID(string FieldName, string TableName)
{
string strsql = "select max(" + FieldName + ")+1 from " + TableName;
object obj = GetSingle(strsql);
if (obj == null)
{
return 1;
}
else
{
return intParse(objToString());
}
}
public static bool Exists(string strSql)
{
object obj = GetSingle(strSql);
int cmdresult;
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
cmdresult = 0;
}
else
{
cmdresult = intParse(objToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// 表是否存在
/// </summary>
/// <param name="TableName"></param>
/// <returns></returns>
public static bool TabExists(string TableName)
{
string strsql = "select count() from sysobjects where id = object_id(N'[" + TableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1";
//string strsql = "SELECT count() FROM sysobjects WHERE object_id = OBJECT_ID(N'[dbo][" + TableName + "]') AND type in (N'U')";
object obj = GetSingle(strsql);
int cmdresult;
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
cmdresult = 0;
}
else
{
cmdresult = intParse(objToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
public static bool Exists(string strSql, params SqlParameter[] cmdParms)
{
object obj = GetSingle(strSql, cmdParms);
int cmdresult;
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
cmdresult = 0;
}
else
{
cmdresult = intParse(objToString());
}
if (cmdresult == 0)
{
return false;
}
else
{
return true;
}
}
#endregion
#region 执行简单SQL语句
/// <summary>
/// 执行SQL语句,返回影响的记录数
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connectionOpen();
int rows = cmdExecuteNonQuery();
return rows;
}
catch (SystemDataSqlClientSqlException e)
{
connectionClose();
throw e;
}
}
}
}
public static int ExecuteSqlByTime(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connectionOpen();
cmdCommandTimeout = Times;
int rows = cmdExecuteNonQuery();
return rows;
}
catch (SystemDataSqlClientSqlException e)
{
connectionClose();
throw e;
}
}
}
}
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public static int ExecuteSqlTran(List<String> SQLStringList)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
connOpen();
SqlCommand cmd = new SqlCommand();
cmdConnection = conn;
SqlTransaction tx = connBeginTransaction();
cmdTransaction = tx;
try
{
int count = 0;
for (int n = 0; n < SQLStringListCount; n++)
{
string strsql = SQLStringList[n];
if (strsqlTrim()Length > 1)
{
cmdCommandText = strsql;
count += cmdExecuteNonQuery();
}
}
txCommit();
return count;
}
catch
{
txRollback();
return 0;
}
}
}
/// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSql(string SQLString, string content)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString, connection);
SystemDataSqlClientSqlParameter myParameter = new SystemDataSqlClientSqlParameter("@content", SqlDbTypeNText);
myParameterValue = content;
cmdParametersAdd(myParameter);
try
{
connectionOpen();
int rows = cmdExecuteNonQuery();
return rows;
}
catch (SystemDataSqlClientSqlException e)
{
throw e;
}
finally
{
cmdDispose();
connectionClose();
}
}
}
/// <summary>
/// 执行带一个存储过程参数的的SQL语句。
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
/// <returns>影响的记录数</returns>
public static object ExecuteSqlGet(string SQLString, string content)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(SQLString, connection);
SystemDataSqlClientSqlParameter myParameter = new SystemDataSqlClientSqlParameter("@content", SqlDbTypeNText);
myParameterValue = content;
cmdParametersAdd(myParameter);
try
{
connectionOpen();
object obj = cmdExecuteScalar();
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
return null;
}
else
{
return obj;
}
}
catch (SystemDataSqlClientSqlException e)
{
throw e;
}
finally
{
cmdDispose();
connectionClose();
}
}
}
/// <summary>
/// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
/// </summary>
/// <param name="strSQL">SQL语句</param>
/// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
/// <returns>影响的记录数</returns>
public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(strSQL, connection);
SystemDataSqlClientSqlParameter myParameter = new SystemDataSqlClientSqlParameter("@fs", SqlDbTypeImage);
myParameterValue = fs;
cmdParametersAdd(myParameter);
try
{
connectionOpen();
int rows = cmdExecuteNonQuery();
return rows;
}
catch (SystemDataSqlClientSqlException e)
{
throw e;
}
finally
{
cmdDispose();
connectionClose();
}
}
}
/// <summary>
/// 执行一条计算查询结果语句,返回查询结果(object)。
/// </summary>
/// <param name="SQLString">计算查询结果语句</param>
/// <returns>查询结果(object)</returns>
public static object GetSingle(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connectionOpen();
object obj = cmdExecuteScalar();
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
return null;
}
else
{
return obj;
}
}
catch (SystemDataSqlClientSqlException e)
{
connectionClose();
throw e;
}
}
}
}
public static object GetSingle(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(SQLString, connection))
{
try
{
connectionOpen();
cmdCommandTimeout = Times;
object obj = cmdExecuteScalar();
if ((ObjectEquals(obj, null)) || (ObjectEquals(obj, SystemDBNullValue)))
{
return null;
}
else
{
return obj;
}
}
catch (SystemDataSqlClientSqlException e)
{
connectionClose();
throw e;
}
}
}
}
/// <summary>
/// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
/// </summary>
/// <param name="strSQL">查询语句</param>
/// <returns>SqlDataReader</returns>
public static SqlDataReader ExecuteReader(string strSQL)
{
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(strSQL, connection);
try
{
connectionOpen();
SqlDataReader myReader = cmdExecuteReader(CommandBehaviorCloseConnection);
return myReader;
}
catch (SystemDataSqlClientSqlException e)
{
throw e;
}
}
/// <summary>
/// 执行查询语句,返回DataSet
看到你的sql语句。。where 站名=‘sta’”;这个生成的诗歌什么东西???
换成下面这句:
cmdCommandText=stringFormat("select from 车站信息表 where 站名 = '{0}'",sta);改了再试试
你是不能读取数据库还是不会生成数据库?
如果是不能读取数据库就看看aodnet部分,那里有读取数据库的方法和顺序,当然不同的数据库要用不同的类,sql用sql的,mysql用mysql(net没集成进去,要去mysql网上下载),access的就用oledb的就可以了。
如果是不会生成数据库,我建议你先练习office自带的access,通了的话就基本上全部通了。
以上就是关于VB窗体怎么用ADO控件或者DATAGrid控件连接Access数据库全部的内容,包括:VB窗体怎么用ADO控件或者DATAGrid控件连接Access数据库、C#连接access数据库的问题!高手进,请帮我看看代码哪里错了。(windows窗体应用)、C# Windows froms 窗体程序,,连接SQLite数据库的,DBhelp类怎写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)