一個包含執行查詢,執行存儲過程,執行標量查詢的方法的類,基本上是Oracle和Microsoft數據庫的所有數據庫操作。目前我有一個類每個操作有不同的方法,但有很多重複代碼。如何以適當的面向對象的方式進行設計?如何設計一個面向對象的C#類的所有數據庫操作,如執行查詢,執行SP,執行標量查詢等?
這裏是我目前:我有一個像執行關於執行標返回一個字符串類似的方法,執行標返回一個int等
public class DBoperations
{
private string querystringval;
private string logfileloc;
private string connectionstringval;
LogToFile logobj = new LogToFile();
SqlConnection SqlConn = new SqlConnection();
public string logfilelocval
{
get { return logfileloc; }
set { logfileloc = value; }
}
public string queryValue
{
get { return querystringval; }
set { querystringval = value; }
}
public string connectionvalue
{
get { return connectionstringval; }
set { connectionstringval = value; }
}
public Boolean connecttodb()
{
logobj.fileName = logfilelocval;
//SqlConnection SqlConn = new SqlConnection(connectionvalue);
SqlConn.ConnectionString = connectionvalue;
try
{
SqlConn.Open();
logobj.MyLogFile("**SUCCESS** ", "Database connection opened");
return true;
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
logobj.MyLogFile("**FAILURE**", "Database Connection Failed" + e.Message);
return false;
throw new IndexOutOfRangeException();
}
}
public string executeaquery()
{
try
{
SqlCommand querystring = new SqlCommand(queryValue, SqlConn);
querystring.CommandTimeout = 90;
querystring.ExecuteNonQuery();
logobj.MyLogFile("**SUCCESS** ", "Query Executed Successfully.");
querystring.Dispose();
return "True";
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
logobj.MyLogFile("**FAILURE**", "Query did not execute." + e.Message);
return e.Message;
throw new IndexOutOfRangeException();
}
}
}}
你知道還是/ m?搜索。我相信你可以用EntityFramework [例子](http://msdn.microsoft.com/en-us/data/jj206878.aspx)搜索DTO來解決你的疑問。如果您至少提供了迄今爲止嘗試過的內容,那麼 –
會更容易引導您。 – Thewads
這幾乎肯定會關閉。您需要包含一些代碼示例並提出更具體的問題。 –