C# Access的简单用法个人总结
来源:互联网 发布:java语言入门电子书 编辑:程序博客网 时间:2024/05/16 06:54
/// <summary>
/// 判断表字段类型和长度是否符合要求/// </summary>
/// <param name="strTableName">表名</param>
/// <param name="strFieldName">字段名</param>
/// <param name="dbType">需求字段类型</param>
/// <param name="iMaxLength">需求字段长度</param>
/// <returns></returns>
public static bool IsFieldDataTypeRight(String strTableName, String strFieldName, OleDbType dbtype, int iMaxLength)
{
try
{
if (dbConection.State == ConnectionState.Closed)
{
dbConection.Open();
}
//获取到strTableName对应的字段
DataTable dt = dbConection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, strTableName, null });
if (dt != null && dt.Rows.Count > 0)
{
DataRow drField = dt.NewRow();
foreach (DataRow dr in dt.Rows)
{
if (dr["COLUMN_NAME"].ToString() == strFieldName)//表中存在字段名
{
drField.ItemArray = dr.ItemArray;
break;
}
}
if (drField["COLUMN_NAME"] != null)//如果有字段
{
if ((OleDbType)drField["DATA_TYPE"] == dbtype)
{
if ((OleDbType)drField["DATA_TYPE"] == OleDbType.WChar)//当字段是varchar类型的时候,要判断长度,其他字段类型不做长度判断,另外0长度是memo属性,要特殊判断
{
if (Int32.Parse(drField["CHARACTER_MAXIMUM_LENGTH"].ToString()) == 0
&& Int32.Parse(drField["CHARACTER_OCTET_LENGTH"].ToString()) == 0
&& iMaxLength == 0)
{
return true;
}
if (Int32.Parse(drField["CHARACTER_MAXIMUM_LENGTH"].ToString()) == iMaxLength)
{
return true;
}
else
{
return false;
}
}
return true;
}
}
}
return false;
}
catch
{
return false;
}
}
/// <summary>
/// 增加表的字段
/// </summary>
/// <param name="strTableName"></param>
/// <param name="strFieldName"></param>
/// <param name="dbType"></param>
/// <returns></returns>
public static bool AddTableField(String strTableName, String strFieldName, DbType dbType)
{
try
{
if (dbConection.State == ConnectionState.Closed)
{
dbConection.Open();
}
String strSql = String.Empty;
switch (dbType)
{
case DbType.String:
strSql = String.Format("alter table {0} add column {1} varchar(255)", strTableName, strFieldName);
break;
case DbType.Int32:
strSql = String.Format("alter table {0} add column {1} Integer", strTableName, strFieldName);
break;
case DbType.Boolean:
strSql = String.Format("alter table {0} add column {1} bit", strTableName, strFieldName);
break;
case DbType.DateTime:
strSql = String.Format("alter table {0} add column {1} datetime", strTableName, strFieldName);
break;
default:
break;
}
OleDbCommand myCmd = new OleDbCommand(strSql, dbConection);
myCmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 增加表的字段
/// </summary>
/// <param name="strTableName"></param>
/// <param name="strFieldName"></param>
/// <param name="dbType"></param>
/// <returns></returns>
public static bool AddTableField(String strTableName, String strFieldName, OleDbType dbType, int iMaxLength)
{
try
{
if (dbConection.State == ConnectionState.Closed)
{
dbConection.Open();
}
String strSql = String.Empty;
switch (dbType)
{
case OleDbType.WChar:
if (iMaxLength == 0)//memo的长度是0
{
strSql = String.Format("alter table {0} add column {1} memo", strTableName, strFieldName);
}
else
{
strSql = String.Format("alter table {0} add column {1} varchar({2})", strTableName, strFieldName, iMaxLength);
}
break;
case OleDbType.Integer:
strSql = String.Format("alter table {0} add column {1} Integer", strTableName, strFieldName);
break;
case OleDbType.Boolean:
strSql = String.Format("alter table {0} add column {1} bit", strTableName, strFieldName);
break;
case OleDbType.Date:
strSql = String.Format("alter table {0} add column {1} datetime", strTableName, strFieldName);
break;
default:
break;
}
OleDbCommand myCmd = new OleDbCommand(strSql, dbConection);
myCmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
public static bool UpdateTableField(String strTableName, String strFieldName, OleDbType dbType, int iMaxLength)
{
try
{
if (dbConection.State == ConnectionState.Closed)
{
dbConection.Open();
}
String strSql = String.Empty;
switch (dbType)
{
case OleDbType.WChar:
if (iMaxLength == 0)
{
strSql = String.Format("alter table {0} alter column {1} memo", strTableName, strFieldName);
}
else
{
strSql = String.Format("alter table {0} alter column {1} varchar({2})", strTableName, strFieldName, iMaxLength);
}
break;
case OleDbType.BSTR://暂用BSTR代替备注类型
strSql = String.Format("alter table {0} alter column {1} memo", strTableName, strFieldName);
break;
case OleDbType.Integer:
strSql = String.Format("alter table {0} alter column {1} Integer", strTableName, strFieldName);
break;
case OleDbType.Boolean:
strSql = String.Format("alter table {0} alter column {1} bit", strTableName, strFieldName);
break;
case OleDbType.Date:
strSql = String.Format("alter table {0} alter column {1} datetime", strTableName, strFieldName);
break;
default:
break;
}
OleDbCommand myCmd = new OleDbCommand(strSql, dbConection);
myCmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 判断记录是否存在
/// </summary>
/// <param name="strTableName"></param>
/// <param name="strRecordName"></param>
/// <param name="strRecordValue"></param>
/// <returns></returns>
public static bool IsRecordExist(String strTableName, String strRecordName, String strRecordValue)
{
try
{
if (dbConection.State == ConnectionState.Closed)
{
dbConection.Open();
}
String strSql = String.Format("select * from {0} where {1} = '{2}'",
strTableName, strRecordName, strRecordValue);
OleDbDataAdapter da;
DataTable dt;
GetDBData(strSql, out da, out dt);
if (dt.Rows.Count > 0)
{
return true;
}
else
{
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// 删除表字段
/// </summary>
/// <param name="strTableName"></param>
/// <param name="strField"></param>
/// <returns></returns>
public static bool DeleteTableField(string strTabName, string strField)
{
try
{
String strSql = string.Format("Alter table {0} drop column {1}", strTabName, strField);
return DBCommon.ExecuteSql(strSql);
}
catch
{
return false;
}
}
- C# Access的简单用法个人总结
- c#操作Access数据库的简单例子
- c#操作Access数据库的简单例子
- C#访问ACCESS文件的简单实例
- c#操作Access的方法总结
- JAVA DAO(Data Access Object)的个人总结
- c#简单的控制台个人成绩系统
- spring的aop用法个人使用总结
- 个人总结的CString常用用法
- final和static用法的个人总结
- C#字符串的简单用法
- c# ajax的简单用法
- c# ToolTip的简单用法
- C# ThreadPool的简单用法
- 文中广告简单实现的个人总结
- 简单的ps个人使用总结
- c#中哈希表的用法总结
- c#中哈希表的用法总结
- static作用(修饰函数、局部变量、全局变量)
- UVA10054
- 开发小细节汇总(持续更新)
- hdu-2306-改革春风吹满地
- Ninject-ioc随website部署到IIS上后,始终无法运行。
- C# Access的简单用法个人总结
- 网站QQ客服代码
- 福州化妆师培训哪里好?福州曼丹
- php在Windows下获取文件夹和大文件大小
- 在win8下安装tomcat8.0后,点击bin 目录下的启动文件startup.bat后,控制台一闪而过,根本启动不了tomcat
- hibernate联合主键hbm.xml配置
- About Software Security(关于软件安全)
- 项目是很容易的
- HDU 4389——X mod f(x)(数位DP)