Model层
using System;
using System.Data;
using System.Configuration;
using System.Web;
namespace Model
{
public class Lightings
{
private string _Lighting;
public string Lighting
{
get
{
return _Lighting;
}
set
{
_Lighting = value;
}
}
}
}
DAL层using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using SQLHelper;
using Model;namespace DAL
{
public class LightingSQL
{
public void Update_Lighting(Lightings lightings)
{
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
SqlParameter[] ParamList ={
sqlHelper.CreateInParam("@Lighting",SqlDbType.NText,0,lightings.Lighting)
};
try
{
sqlHelper.RunProc("Update_Lighting", ParamList);
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
}
public Lightings Get_Lighting()
{
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
SqlDataReader rec=null;
try
{
sqlHelper.RunProc("Get_Lighting", out rec);
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
Lightings lightings = new Lightings();
while (rec.Read())
{
lightings.Lighting = rec["Lighting"].ToString();
} return lightings;
}
}
}出错地点为DAL层的
while (rec.Read())BLL层
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Text;
using System.Collections.Generic;
using DAL;
using Model;namespace BLL
{
public class LightingSystem
{
/// <summary>
/// 修改
/// </summary>
/// <param name="config"></param>
public void Update_Lighting(Lightings lighting)
{
LightingSQL lightingSQL = new LightingSQL();
lightingSQL.Update_Lighting(lighting);
}
/// <summary>
/// 查看
/// </summary>
/// <returns></returns>
public Lightings Get_Lighting()
{
LightingSQL lightingSQL = new LightingSQL();
return (lightingSQL.Get_Lighting());
}
}
}
出错地点为DAL层的
while (rec.Read())
using System;
using System.Data;
using System.Configuration;
using System.Web;
namespace Model
{
public class Lightings
{
private string _Lighting;
public string Lighting
{
get
{
return _Lighting;
}
set
{
_Lighting = value;
}
}
}
}
DAL层using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Text;
using System.Collections.Generic;
using System.Data.SqlClient;
using SQLHelper;
using Model;namespace DAL
{
public class LightingSQL
{
public void Update_Lighting(Lightings lightings)
{
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
SqlParameter[] ParamList ={
sqlHelper.CreateInParam("@Lighting",SqlDbType.NText,0,lightings.Lighting)
};
try
{
sqlHelper.RunProc("Update_Lighting", ParamList);
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
}
public Lightings Get_Lighting()
{
SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper();
SqlDataReader rec=null;
try
{
sqlHelper.RunProc("Get_Lighting", out rec);
}
catch (Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
throw new Exception(ex.Message, ex);
}
Lightings lightings = new Lightings();
while (rec.Read())
{
lightings.Lighting = rec["Lighting"].ToString();
} return lightings;
}
}
}出错地点为DAL层的
while (rec.Read())BLL层
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Text;
using System.Collections.Generic;
using DAL;
using Model;namespace BLL
{
public class LightingSystem
{
/// <summary>
/// 修改
/// </summary>
/// <param name="config"></param>
public void Update_Lighting(Lightings lighting)
{
LightingSQL lightingSQL = new LightingSQL();
lightingSQL.Update_Lighting(lighting);
}
/// <summary>
/// 查看
/// </summary>
/// <returns></returns>
public Lightings Get_Lighting()
{
LightingSQL lightingSQL = new LightingSQL();
return (lightingSQL.Get_Lighting());
}
}
}
出错地点为DAL层的
while (rec.Read())
解决方案 »
- c# 串口通讯serialPort1 怎样判断一条完整的数据发送完。
- C#中关键单词的使用意思、、
- Configuration能否操作Web.config中的dataConfiguration
- 如何在后台把Repeater的某一列的特定的值传给一个变量?
- VISIO STDIO.NET2003开发环境,C#语言.实时数据动态显示--折线图
- 请问,如果动态调用一个dll文件,那么它里面的ref参数应如何传递呢。
- WINCE中调用WEB SERVICE问题
- mdi 子窗体 文本框键盘事件
- convert转换失败不会抛异常吗
- 想学习c#;求大神指点!非常感谢
- 怎么把txt的一行字根据条件读到不同的textbox和combobox里边呢
- 跪求Gmail邀请
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.ComponentModel;namespace SQLHelper
{
/// <summary>
/// SQLHelper类封装对SQL Server数据库的添加、删除、修改和选择等操作
/// </summary>
public class SQLHelper
{
/// 连接数据源
private SqlConnection myConnection = null;
private readonly string RETURNVALUE = "RETURNVALUE"; /// <summary>
/// 打开数据库连接.
/// </summary>
private void Open()
{
// 打开数据库连接
if (myConnection == null)
{
myConnection = new SqlConnection(ConfigurationManager.AppSettings["SQLCONNECTIONSTRING"].ToString());
}
if(myConnection.State == ConnectionState.Closed)
{
try
{
///打开数据库连接
myConnection.Open();
}
catch(Exception ex)
{
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭已经打开的数据库连接
}
}
} /// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
///判断连接是否已经创建
if(myConnection != null)
{
///判断连接的状态是否打开
if(myConnection.State == ConnectionState.Open)
{
myConnection.Close();
}
}
} /// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (myConnection != null)
{
myConnection.Dispose();
myConnection = null;
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName)
{
SqlCommand cmd = CreateProcCommand(procName, null);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateProcCommand(procName, prams);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="dataReader">返回存储过程返回值</param>
public void RunProc(string procName, out SqlDataReader dataReader)
{
///创建Command
SqlCommand cmd = CreateProcCommand(procName, null);
try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <param name="dataSet">返回DataReader对象</param>
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
{
///创建Command
SqlCommand cmd = CreateProcCommand(procName, prams);
try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="dataSet">返回DataSet对象</param>
public void RunProc(string procName, ref DataSet dataSet)
{
if(dataSet == null)
{
dataSet = new DataSet();
}
///创建SqlDataAdapter
SqlDataAdapter da = CreateProcDataAdapter(procName,null);
try
{
///读取数据
da.Fill(dataSet);
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
} /// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <param name="dataSet">返回DataSet对象</param>
public void RunProc(string procName, SqlParameter[] prams,ref DataSet dataSet)
{
if(dataSet == null)
{
dataSet = new DataSet();
}
///创建SqlDataAdapter
SqlDataAdapter da = CreateProcDataAdapter(procName,prams);
try
{
///读取数据
da.Fill(dataSet);
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <returns>返回值</returns>
public int RunSQL(string cmdText)
{
SqlCommand cmd = CreateSQLCommand(cmdText, null);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回值</returns>
public int RunSQL(string cmdText, SqlParameter[] prams)
{
SqlCommand cmd = CreateSQLCommand(cmdText,prams);
try
{
///执行存储过程
cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
///返回存储过程的参数值
return (int)cmd.Parameters[RETURNVALUE].Value;
}
/// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="dataReader">返回DataReader对象</param>
public void RunSQL(string cmdText, out SqlDataReader dataReader)
{
///创建Command
SqlCommand cmd = CreateSQLCommand(cmdText, null);
try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
} /// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <param name="dataReader">返回DataReader对象</param>
public void RunSQL(string cmdText, SqlParameter[] prams, out SqlDataReader dataReader)
{
///创建Command
SqlCommand cmd = CreateSQLCommand(cmdText, prams);
try
{
///读取数据
dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch(Exception ex)
{
dataReader = null;
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
} /// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="dataSet">返回DataSet对象</param>
public void RunSQL(string cmdText, ref DataSet dataSet)
{
if(dataSet == null)
{
dataSet = new DataSet();
}
///创建SqlDataAdapter
SqlDataAdapter da = CreateSQLDataAdapter(cmdText,null);
try
{
///读取数据
da.Fill(dataSet);
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
} /// <summary>
/// 执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <param name="dataSet">返回DataSet对象</param>
public void RunSQL(string cmdText, SqlParameter[] prams,ref DataSet dataSet)
{
if(dataSet == null)
{
dataSet = new DataSet();
}
///创建SqlDataAdapter
SqlDataAdapter da = CreateProcDataAdapter(cmdText,prams);
try
{
///读取数据
da.Fill(dataSet);
}
catch(Exception ex)
{
///记录错误日志
SystemError.CreateErrorLog(ex.Message);
}
finally
{
///关闭数据库的连接
Close();
}
}
/// <summary>
/// 创建一个SqlCommand对象以此来执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateProcCommand(string procName, SqlParameter[] prams)
{
///打开数据库连接
Open();
///设置Command
SqlCommand cmd = new SqlCommand(procName, myConnection);
cmd.CommandType = CommandType.StoredProcedure; ///添加把存储过程的参数
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
}
///添加返回参数ReturnValue
cmd.Parameters.Add(
new SqlParameter(RETURNVALUE, SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty, DataRowVersion.Default,null)); ///返回创建的SqlCommand对象
return cmd;
} /// <summary>
/// 创建一个SqlCommand对象以此来执行存储过程
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateSQLCommand(string cmdText, SqlParameter[] prams)
{
///打开数据库连接
Open();
///设置Command
SqlCommand cmd = new SqlCommand(cmdText,myConnection); ///添加把存储过程的参数
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
cmd.Parameters.Add(parameter);
}
}
///添加返回参数ReturnValue
cmd.Parameters.Add(
new SqlParameter(RETURNVALUE, SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty, DataRowVersion.Default,null)); ///返回创建的SqlCommand对象
return cmd;
} /// <summary>
/// 创建一个SqlDataAdapter对象,用此来执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回SqlDataAdapter对象</returns>
private SqlDataAdapter CreateProcDataAdapter(string procName,SqlParameter[] prams)
{
///打开数据库连接
Open();
///设置SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(procName,myConnection);
da.SelectCommand.CommandType = CommandType.StoredProcedure; ///添加把存储过程的参数
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
da.SelectCommand.Parameters.Add(parameter);
}
}
///添加返回参数ReturnValue
da.SelectCommand.Parameters.Add(
new SqlParameter(RETURNVALUE, SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty, DataRowVersion.Default,null)); ///返回创建的SqlDataAdapter对象
return da;
} /// <summary>
/// 创建一个SqlDataAdapter对象,用此来执行SQL语句
/// </summary>
/// <param name="cmdText">SQL语句</param>
/// <param name="prams">SQL语句所需参数</param>
/// <returns>返回SqlDataAdapter对象</returns>
private SqlDataAdapter CreateSQLDataAdapter(string cmdText,SqlParameter[] prams)
{
///打开数据库连接
Open();
///设置SqlDataAdapter对象
SqlDataAdapter da = new SqlDataAdapter(cmdText,myConnection); ///添加把存储过程的参数
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
da.SelectCommand.Parameters.Add(parameter);
}
}
///添加返回参数ReturnValue
da.SelectCommand.Parameters.Add(
new SqlParameter(RETURNVALUE, SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty, DataRowVersion.Default,null)); ///返回创建的SqlDataAdapter对象
return da;
}
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param; ///当参数大小为0时,不使用该参数大小值
if(Size > 0)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
///当参数大小为0时,不使用该参数大小值
param = new SqlParameter(ParamName, DbType);
} ///创建输出类型的参数
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
} ///返回创建的参数
return param;
} /// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的parameter 对象</returns>
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
} /// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, null);
} /// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter CreateReturnParam(string ParamName, SqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
}
}
HellKo我的这个字段数据库里是有值的。。唉。。
改成
convert.toString(rec["Lighting"]);
如果不报错的话 说明rec["Lighting"]的值是null
如果还报未将引用设的错误的话 说明 rec里没有Lighting这一字段
{
while(rec.Read())
{
lightings.Lighting = rec["Lighting"].ToString();
}
}
行 51: }
行 52: Culture culture = new Culture();
行 53: while (rec.Read())
行 54: {
行 55: culture.Cultures = rec["Culture"].ToString();
如果是rec没有这一字段 我要怎么解决这个错误?请问
new Sqlarameter("@Lighting",lightings.Lighting
};
提供参数