using System;
using System.Data;
using MyChatRoom.DataAccessLayer;
/// <summary>
/// Message 的摘要说明
/// </summary>
namespace MyChatRoom.BusinessLogicLayer
{
public class Message
{
public static Database LoadTop10()
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
Database ds=db.GetDataSet(sql);
return ds;
} public void Add(string username, string createTime, string content, string color, string emotion)
{
Database db = new Database();
string sql = "Insert Into [Message] Values("
+ "'" + username + "',"
+ "'" + createTime + "',"
+ "'" + content + "',"
+ "'" + color + "',"
+ "'" + emotion + "')";
db.ExecuteSQL(sql);
}
}
} --------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.SqlTypes; /// <summary>
/// Databaes 的摘要说明
/// </summary>
namespace MyChatRoom.DataAccessLayer
{
public class Database: IDisposable
{
/// <summary>
/// 保护变量,数据库连接。
/// </summary>
protected SqlConnection Connection;
protected String ConnectionString;
public Database()
{
ConnectionString = ConfigurationManager.AppSettings["DBConnectionString"];
}
~Database()
{
try
{
if (Connection != null)
Connection.Close();
}
catch{}
try
{
Dispose();
}
catch {}
}
protected void Open()
{
if (Connection == null)
{
Connection = new SqlConnection(ConnectionString);
}
if(Connection.State.Equals(ConnectionState.Closed))
{
Connection.Open();
}
}
protected void Close()
{
if (Connection != null)
Connection.Close();
}
protected void Dispose()
{
if(Connection != null)
{
Connection.Dispose();
Connection = null;
}
}
public DataSet GetDataSet(String SqlString)
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
public DataRow GetDataRow(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
if(dataset.Tables[0].Rows.Count>0)
{
return dataset.Tables[0].Rows[0];
}
else
{
return null;
}
}
public int ExecuteSQL(String SqlString)
{
int conut = -1;
Open();
try
{
SqlCommand cmd =new SqlCommand(SqlString,Connection);
conut = cmd.ExecuteNonQuery();
}
catch
{
conut = -1;
}
finally
{
Close();
}
return conut; }
#region IDisposable 成员 void IDisposable.Dispose()
{
throw new Exception("The method or operation is not implemented.");
} #endregion
}
} 大家帮我看一下以上的两个类!~~~~我调试时在db.GetDataSet()出错了!~~~~
无法将类型“System.Data.DataSet”隐式转换为“MyChatRoom.DataAccessLayer.Database“ 大家帮忙改一改
using System.Data;
using MyChatRoom.DataAccessLayer;
/// <summary>
/// Message 的摘要说明
/// </summary>
namespace MyChatRoom.BusinessLogicLayer
{
public class Message
{
public static Database LoadTop10()
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
Database ds=db.GetDataSet(sql);
return ds;
} public void Add(string username, string createTime, string content, string color, string emotion)
{
Database db = new Database();
string sql = "Insert Into [Message] Values("
+ "'" + username + "',"
+ "'" + createTime + "',"
+ "'" + content + "',"
+ "'" + color + "',"
+ "'" + emotion + "')";
db.ExecuteSQL(sql);
}
}
} --------------------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.SqlTypes; /// <summary>
/// Databaes 的摘要说明
/// </summary>
namespace MyChatRoom.DataAccessLayer
{
public class Database: IDisposable
{
/// <summary>
/// 保护变量,数据库连接。
/// </summary>
protected SqlConnection Connection;
protected String ConnectionString;
public Database()
{
ConnectionString = ConfigurationManager.AppSettings["DBConnectionString"];
}
~Database()
{
try
{
if (Connection != null)
Connection.Close();
}
catch{}
try
{
Dispose();
}
catch {}
}
protected void Open()
{
if (Connection == null)
{
Connection = new SqlConnection(ConnectionString);
}
if(Connection.State.Equals(ConnectionState.Closed))
{
Connection.Open();
}
}
protected void Close()
{
if (Connection != null)
Connection.Close();
}
protected void Dispose()
{
if(Connection != null)
{
Connection.Dispose();
Connection = null;
}
}
public DataSet GetDataSet(String SqlString)
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
}
public DataRow GetDataRow(String SqlString)
{
DataSet dataset = GetDataSet(SqlString);
dataset.CaseSensitive = false;
if(dataset.Tables[0].Rows.Count>0)
{
return dataset.Tables[0].Rows[0];
}
else
{
return null;
}
}
public int ExecuteSQL(String SqlString)
{
int conut = -1;
Open();
try
{
SqlCommand cmd =new SqlCommand(SqlString,Connection);
conut = cmd.ExecuteNonQuery();
}
catch
{
conut = -1;
}
finally
{
Close();
}
return conut; }
#region IDisposable 成员 void IDisposable.Dispose()
{
throw new Exception("The method or operation is not implemented.");
} #endregion
}
} 大家帮我看一下以上的两个类!~~~~我调试时在db.GetDataSet()出错了!~~~~
无法将类型“System.Data.DataSet”隐式转换为“MyChatRoom.DataAccessLayer.Database“ 大家帮忙改一改
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
Database ds=db.GetDataSet(sql);
return ds;
}
Database 是什么?db.GetDataSet(sql)的返回类型是DataSet,这样当然有问题了。
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
Database ds=db.GetDataSet(sql);
return ds;
}
你是不是想获取前10条记录,用数据集保存就行了;
public static DataSet LoadTop10()
{
string sql = "select top10 * from [Message] order by CreateTime desc";
DataSet ds=db.GetDataSet(sql);
return ds;
}
public DataSet GetDataSet(String SqlString)
{
Open();
SqlDataAdapter adapter = new SqlDataAdapter(SqlString, Connection);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
Close();
return dataset;
} 的返回值类型改成DataBase也行,不过你还是会出现同样的问题的,就是说DataSet无法转换成DataBase.
public static Database LoadTop10()
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
Database ds=db.GetDataSet(sql);
return ds;
}
只要改成
public static DataSet LoadTop10()
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
DataSet ds=db.GetDataSet(sql);
return ds;
}
{
Database db = new Database();
string sql = "select top10 * from [Message] order by CreateTime desc";
DataSet ds=db.GetDataSet(sql);
return ds;
}这样后!~~~return的值ds不是又不能转换了??
要不你试试强制转换
DataBase a=(DataBase)ds;
应该也是不行的。