存储过程大全登录增删改查连接调用Word文档格式.docx
《存储过程大全登录增删改查连接调用Word文档格式.docx》由会员分享,可在线阅读,更多相关《存储过程大全登录增删改查连接调用Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
privatestringstoreProcedureName;
privateconstStringconnString=
@"
DataSource=localhost\SQLEXPRESS;
InitialCatalog=Sample;
IntegratedSecurity=True"
;
////<
summary>
///初始化DataAccessHelper.StoreProceduer对象。
///<
/summary>
paramname="
connectionString"
>
数据库连接字符串。
<
/param>
publicStoreProcedure(stringconnectionString)
this.connectionString=connectionString;
}
storeProcedureName"
存储过程名称。
publicStoreProcedure(stringstoreProcedureName,stringconnectionString)
this.storeProcedureName=storeProcedureName;
///获取或设置存储过程名称。
publicstringStoreProcedureName
get{returnthis.storeProcedureName;
set{this.storeProcedureName=value;
///执行操作类(Insert/Delete/Update)存储过程。
paraValues"
传递给存储过程的参数值列表。
returns>
受影响的行数。
/returns>
publicintExecuteNonQuery(paramsobject[]paraValues)
using(SqlConnectionconnection=newSqlConnection(this.connectionString))
SqlCommandcommand=this.CreateSqlCommand(connection);
try
this.DeriveParameters(command);
this.AssignParameterValues(command,paraValues);
connection.Open();
intaffectedRowsCount=command.ExecuteNonQuery();
returnaffectedRowsCount;
catch
throw;
///执行存储过程,返回System.Data.DataTable。
包含查询结果的System.Data.DataTable。
publicDataTableExecuteDataTable(paramsobject[]paraValues)
SqlDataAdapteradapter=newSqlDataAdapter(command);
DataTabledataTable=newDataTable();
adapter.Fill(dataTable);
returndataTable;
///执行存储过程,填充指定的System.Data.DataTable。
dataTable"
用于填充查询结果的System.Data.DataTable。
publicvoidExecuteFillDataTable(DataTabledataTable,paramsobject[]paraValues)
///执行存储过程返回System.Data.SqlClient.SqlDataReader,
///在System.Data.SqlClient.SqlDataReader对象关闭时,数据库连接自动关闭。
包含查询结果的System.Data.SqlClient.SqlDataReader对象。
publicSqlDataReaderExecuteDataReader(paramsobject[]paraValues)
returncommand.ExecuteReader(CommandBehavior.CloseConnection);
///执行查询,并返回查询所返回的结果集中第一行的第一列。
忽略其他列或行。
结果集中第一行的第一列或空引用(如果结果集为空)。
publicobjectExecuteScalar(paramsobject[]paraValues)
objectresult=command.ExecuteScalar();
//stringr=command.Parameters[1].Value.ToString();
returnresult;
///从在System.Data.SqlClient.SqlCommand中指定的存储过程中检索参数信息并填充指定的
///System.Data.SqlClient.SqlCommand对象的System.Data.SqlClient.SqlCommand.Parameters集
合。
sqlCommand"
将从其中导出参数信息的存储过程的System.Data.SqlClient.SqlCommand对象。
internalvoidDeriveParameters(SqlCommandsqlCommand)
sqlCommand.Connection.Open();
SqlCommandBuilder.DeriveParameters(sqlCommand);
sqlCommand.Connection.Close();
if(sqlCommand.Connection!
=null)
//用指定的参数值列表为存储过程参数赋值。
privatevoidAssignParameterValues(SqlCommandsqlCommand,paramsobject[]paraValues)
if(paraValues!
if((sqlCommand.Parameters.Count-1)!
=paraValues.Length)
thrownewArgumentNullException("
Thenumberofparametersdoesnotmatchnumberofvaluesforstoredprocedure."
);
for(inti=0;
i<
paraValues.Length;
i++)
sqlCommand.Parameters[i+1].Value=(paraValues[i]==null)?
DBNull.Value:
paraValues[i];
//创建用于执行存储过程的SqlCommand。
privateSqlCommandCreateSqlCommand(SqlConnectionconnection)
SqlCommandcommand=newSqlCommand(this.storeProcedureName,connection);
command.CommandType=CommandType.StoredProcedure;
returncommand;
//-------------------------------------这一部分是我完善的,因为没有执行后返回存储过程中的返回值的函数-----------------------
///执行存储过程,返回存储过程定义的返回值,注意存储过程中参数(paraValues)如果为返回值赋为空,其它值位置对应好
output"
返回存储过程中定义的返回值数组<
outParaNum"
存储过程中返回值的个数<
存储过程全部参数值<
publicvoidExecProcOutput(outobject[]output,intoutParaNum,paramsobject[]paraValues)
output=newobject[outParaNum];
//存储过程中返回值的个数
command.ExecuteNonQuery();
outParaNum;
i++)//将存储过程返回的参数值返回到程序中
output[i]=command.Parameters[1].Value;
}
}
------------------------------------------------增删改查存储过程-------------------------------------------
增
CREATE
PROCEDURE
[dbo].[Add_Admin]
(
@UserName
nvarchar(50),
@Password
@LastLoginIP
@LastLoginTime
Datetime
)
AS
INSERT
INTO
Admin
UserName,
Password,
LastLoginIP,
LastLoginTime
Values
@UserName,
@Password,
@LastLoginIP,
@LastLoginTime
RETURN
@@Identity
GO
删
[dbo].[Delet