我有我奮力創建WCF服務申請表這個數據訪問層的一個問題:WCF從數據訪問層
public class DataAccess
{
private SqlConnection connection = new SqlConnection("Data Source=LAPI;Initial Catalog=PrimierData;Integrated Security=True");
private SqlDataReader dataReader;
private SqlCommand command;
private SqlTransaction transaction = null;
private SqlParameter[] parameters = null;
#region Conenction
public void Open()
{
if (connection.State != ConnectionState.Open)
connection.Open();
}
public void Close()
{
if (connection.State != ConnectionState.Closed)
connection.Close();
}
#endregion
#region Reader
/// <summary>
/// Executes the reader. For MultiRow Search
/// </summary>
/// <param name="commandType">Type of the command.</param>
/// <param name="commandText">The command text.</param>
/// <returns></returns>
public SqlDataReader ExecuteReader(CommandType commandType, string commandText,SqlParameter[] readerparams)
{
Open();
command = new SqlCommand(commandText, connection);
command.CommandType = commandType;
if (readerparams != null)
{
command.Parameters.AddRange(readerparams);
}
this.dataReader = command.ExecuteReader();
command.Parameters.Clear();
// Close();
return this.dataReader;
}
#endregion
#region Execute
/// <summary>
/// Executes the non query. For Insert, Update and Delete
/// </summary>
/// <param name="commandType">Type of the command.</param>
/// <param name="commandText">The command text.</param>
/// <param name="parameters">The parameters.</param>
/// <returns></returns>
public int ExecuteNonQuery(CommandType commandType, string commandText,SqlParameter[] nonparams)
{
Open();
command = new SqlCommand(commandText, connection);
command.CommandType = commandType;
command.Parameters.AddRange(nonparams);
int returnValue = command.ExecuteNonQuery();
command.Parameters.Clear();
Close();
return returnValue;
}
#endregion
}
我想使用WCF,但我得到一個錯誤
無法添加服務。服務元數據可能無法訪問。確保您的服務正在運行並展示元數據。
而我試圖編碼它,我努力失敗。我使用的代碼工作,但創建WCF時,我是一個complte noob。
[ServiceContract]
public interface IService1
{
// TODO: Add your service operations here
[OperationContract]
void Open();
[OperationContract]
void Close();
[OperationContract]
SqlDataReader ExecuteReader(CommandType commandType, string commandText, SqlParameter[] readerparams);
[OperationContract]
int ExecuteNonQuery(CommandType commandType, string commandText, SqlParameter[] nonparams);
}
和我Service.svc
public class Service1 : IService1
{
private SqlConnection connection = new SqlConnection("Data Source=LAPI;Initial Catalog=PrimierData;Integrated Security=True");
private SqlDataReader dataReader;
private SqlCommand command;
private SqlTransaction transaction = null;
private SqlParameter[] parameters = null;
[OperationContract]
public void Open()
{
if (connection.State != ConnectionState.Open)
connection.Open();
}
[OperationContract]
public void Close()
{
if (connection.State != ConnectionState.Closed)
connection.Close();
}
[OperationContract]
public int ExecuteNonQuery(CommandType commandType, string commandText, SqlParameter[] nonparams)
{
Open();
command = new SqlCommand(commandText, connection);
command.CommandType = commandType;
command.Parameters.AddRange(nonparams);
int returnValue = command.ExecuteNonQuery();
command.Parameters.Clear();
Close();
return returnValue;
}
[OperationContract]
public SqlDataReader ExecuteReader(CommandType commandType, string commandText, SqlParameter[] readerparams)
{
Open();
command = new SqlCommand(commandText, connection);
command.CommandType = commandType;
if (readerparams != null)
{
command.Parameters.AddRange(readerparams);
}
this.dataReader = command.ExecuteReader();
command.Parameters.Clear();
// Close();
return this.dataReader;
}
我看不出有任何WCF服務代碼...如果此代碼可以更好地顯示什麼不起作用... – rene 2012-08-16 08:15:28
您是否嘗試將WCF服務參考添加到您的D AL?你必須更具體,所以我們可以幫助你。 – 2012-08-16 08:23:29
是的,我試圖引用一個DAL對不起,因爲這是非特定的。我的第一篇文章。我現在將添加錯誤代碼。 – J03Fr0st 2012-08-16 08:47:36