首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

菜鸟提问:关于.net怎么连接数据库的有关问题

2011-12-20 
菜鸟提问:关于.net怎么连接数据库的问题首先感谢众多乐意助人的众多高手,感谢你们无私的奉献。现在菜鸟提问

菜鸟提问:关于.net怎么连接数据库的问题
首先感谢众多乐意助人的众多高手,感谢你们无私的奉献。现在菜鸟提问,师傅带着我重写一个人事管理程序,数据库和窗体都做好了。现在师傅叫连接数据库,实现输入数据。保存数据到数据库,可是我看了很多书。真的不知道怎么入手,怎么连。。个位大侠。能不能教教我啊。55或是在那里有相关的教程,视频最好。。一步一步教。要不然我要拿出200大洋请同事吃饭的。。我现在工资不高啊。

[解决办法]
网上查ado.net

[解决办法]
这个是连接数据库的
MyConnection = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ "newconnectionString "].ToString());
MyConnection.Open();
string SqlString = "select * from UpLoad where u_id=2 ";
MyCommand = new SqlCommand(SqlString,MyConnection);
MyDataReader = MyCommand.ExecuteReader();
你如果是执行update的话,把SqlString 改成“update 表 set 列=值 where 条件”
再把MyDataReader = MyCommand.ExecuteReader();去掉,换成MyCommand.ExecuteNonQuery(),OK了,希望对你有帮助
[解决办法]
经过长期总结,我自己写了一个数据库操作的一个类DB,一直使用并不断改进它。你只要在你的项目中添加此类,复制代码即可,使用非常方便。不同的数据库只要改以下连接字符串即可。我基本上用Oracle数据库多,有问题和建议给我留言。
可以实现几乎所有的数据库操作,以下是几种常用的用法,非常方便,一个操作也就一两句话。
查询数据:
1 返回多个查询记录
DB db = new DB()
string sql= "selelct * from tablename "
OleDbDataReader dr=db.ExeQuery(string sql);
//你自己处理dr中的数据
db.Close();
2 返回一个值
DB db = new DB()
string sql= "selelct 列名 from tablename "
string res=db.getAValue(string sql);
//你自己处理res中的数据
db.Close();
3 填充一个DateSet
db.FillDataSet(DataSet ds,string sql,string tableName)
存储数据就更简单了
可以是update、delete、insert等
DB db = new DB()
string sql= "update tablename set 列名=值 "
db.ExeNonQuery(string sql);
执行存储过程
db.ExeProcedure(string ProName)


以下是自己封装DB的全部代码,有时间把有些在改进以下
public class DB
{
private string _ConnString;
public static string DateFormat;
public static string TimeFormat;
/// <summary>
/// yyyy-mm-dd hh24:mi:ss
/// 2007-04-03 17:12:34
/// </summary>
public static string OracleDateTimeFormat;
/// <summary>
/// yyyy-MM-dd HH:mm:ss
/// 2007-04-03 17:12:34
/// </summary>
public static string DotNetDateTimeFormat;



private OleDbConnection Conn;
public OleDbCommand Comm;
private bool _AutoCommit;

public string ConnString
{
get { return _ConnString; }
set
{
if (value != " ")
_ConnString = value;
else
_ConnString = " ";
}
}
/// <summary>
/// 是否自动提交
/// </summary>
public bool AutoCommit
{
get { return _AutoCommit; }
set { _AutoCommit = value; }
}
public DB()
{
_ConnString = "Provider=\ "MSDAORA.1\ ";User ID=hzb;Data Source=misora;Password=88888 ";
initDB();
}
public DB(String connectString)
{
_ConnString = connectString;
initDB();
}
private void initDB()
{
DateFormat = "yyyy-MM-dd ";
TimeFormat = "HH24:mi:ss ";
OracleDateTimeFormat = "yyyy-mm-dd hh24:mi:ss ";
DotNetDateTimeFormat = "yyyy-MM-dd HH:mm:ss ";
Conn = new OleDbConnection(_ConnString);
Comm = new OleDbCommand( " ", Conn);
}
private string _errorMessages;
/// <summary>
/// 执行方法返回false时,可以从中取到错误信息


/// </summary>
public string errorMessages
{
get
{
return _errorMessages;
}
}

public bool ConnTry()
{
try
{
if (Conn.State == ConnectionState.Closed)
Conn.Open();
}
catch (OleDbException e)
{
this._errorMessages=getErrorMsg(e, " ");
return false;
}
return true;
}
public void WriteLog(string str)
{
}
public void Close()
{
Conn.Close();
}
public OleDbDataReader ExeQuery(string sql)
{
this.Comm.CommandText = sql;
if (!ConnTry()) return null;
try
{ return Comm.ExecuteReader(); }
catch (OleDbException e)
{
this._errorMessages=getErrorMsg(e,sql);
return null;
}
}
public bool ExeNonQuery(string sql)
{
this.Comm.CommandText = sql;
if (!ConnTry()) return false;
try
{
Comm.ExecuteNonQuery();
Conn.Close();
}
catch (OleDbException e)
{
this._errorMessages=getErrorMsg(e,sql);
Conn.Close();
return false;
}

//自动提交
if (_AutoCommit)
commit();
return true;
}
private string getErrorMsg(OleDbException e,string sql)
{
string m= " ";
for (int i = 0; i < e.Errors.Count; i++)
{
m += "Index # " + i + "\n " +
"Message: " + e.Errors[i].Message + "\n " +
"NativeError: " + e.Errors[i].NativeError + "\n " +
"Source: " + e.Errors[i].Source + "\n " +
"SQLState: " + e.Errors[i].SQLState + "\n " +
"SQL: " + sql;
}
return m;
}
public bool FillDataSet(DataSet ds,string sql,string tableName)
{
if (!ConnTry()) return false;
try
{
OleDbDataAdapter da=new OleDbDataAdapter(sql,this.Conn);
da.Fill(ds,tableName);
Conn.Close();
return true;
}
catch (OleDbException e)
{
this._errorMessages=getErrorMsg(e,sql);
Conn.Close();
return false;
}
}
/// <summary>
/// 要先用Comm.Parameters.Add()增加参数
/// </summary>
/// <param name= "ProName "> 过程名 </param>
/// <returns> </returns>
public bool ExeProcedure(string ProName)
{
this.Comm.CommandText = ProName;
this.Comm.CommandType=CommandType.StoredProcedure;
if (!ConnTry()) return false;
try
{
Comm.ExecuteNonQuery();
Conn.Close();
return true;
}
catch (OleDbException e)
{
this._errorMessages=getErrorMsg(e, "执行过程: "+ProName);
Conn.Close();
return false;
}
}

public void commit()
{
string sql = "commit ";
Comm.CommandText = sql;
if (!ConnTry()) return; ;
Comm.ExecuteNonQuery();
Conn.Close();
}

/// <summary>
/// 将给定的ArrayList中转换成 "(i1,i2,i3,....in) "的形式,用于Sql


/// </summary>
public string ListToStrForSql(ArrayList al)
{
string str = " ";
if (al.Count == 0)
str = "() ";
else
{
if (al.Count == 1)
str = "( " + al[0].ToString() + ") ";
else
{
str = "( " + al[0].ToString();
for (int i = 1; i < al.Count; i++)
str += ", " + al[i].ToString();
str += ") ";
}
}
return str;
}
/// <summary>
/// 将给定的ArrayList中转换成 "( 'i1 ', 'i2 ', 'i3 ',....) "的形式,用于Sql in
/// </summary>
public string ListToStrForSqlStr(ArrayList al)
{
string str = " ";
if (al.Count == 0)
str = "() ";
else
{
if (al.Count == 1)
str = "( ' " + al[0].ToString() + " ') ";
else
{
str = "( ' " + al[0].ToString()+ " ' ";
for (int i = 1; i < al.Count; i++)
str += ", ' " + al[i].ToString()+ " ' ";
str += ") ";
}
}
return str;
}
public string getAValue(string sql)
{
string res;
try
{
this.Comm.CommandText = sql;
ConnTry();
OleDbDataReader dr = Comm.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
res = dr[0].ToString();
}
else
res = null;
dr.Close();
Conn.Close();
return res;
}
catch (Exception e)
{
throw new Exception(e.Message);
}
}
public ArrayList getArrayList(string sql)
{
ArrayList DBList = new ArrayList();
try
{
this.Comm.CommandText = sql;
ConnTry();
OleDbDataReader dr = Comm.ExecuteReader();

if (dr.HasRows)
{
while (dr.Read())
{
DBList.Add(dr[0].ToString());
}
}
else
DBList = null;
dr.Close();
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
Conn.Close();
}
return DBList;
}
public string oracleDatetime(DateTime d)
{
return "to_date( ' " + d.ToString(DotNetDateTimeFormat) + " ', ' " + OracleDateTimeFormat + " ') ";
}
}
[解决办法]
DataTable dt = new DataTable();
SqlConnection Con = new SqlConnection();
SqlCommand Cmd = new SqlCommand();
SqlDataAdapter Ada = new SqlDataAdapter();

public string Connection
{
get
{
return ConfigurationSettings.AppSettings[ "ConnectionString "];
}
}

public void SqlCommon()
{
try
{

Con = new SqlConnection(Connection);
Cmd.Parameters.Clear();
if (Con.State != ConnectionState.Open)


{
Con.Open();
}
Cmd.Connection = Con;
Ada.SelectCommand = Cmd;

}
catch(Exception ex)
{
}

}

取所有数据 
public DataTable GetAllInforDA()
{
try
{
SqlCommon();

Cmd.CommandText = "tb_AfficheGetAllAffiche ";
Cmd.CommandType = CommandType.StoredProcedure;

Ada.Fill(dt);
Cmd.ExecuteNonQuery();
Con.Close();

}
catch (Exception)
{
return null;
}
finally
{
ClearSqlCommon();
}
return dt;
}

热点排行