具有SQL变量的C#动态查询构建器可配置

时间:2013-01-23 06:22:56

标签: c# sql

正在开发一个Prototype,我可以在其中动态访问SQL服务器。表名和列名应该在运行时可配置。

例如:如果我选择一个表或插入记录,我应该将这些值传递给带有表名,列名和参数的原型类。而且班上应该照顾其余的。

我正在努力建立这个班级。

建议采取的步骤建议。

由于

2 个答案:

答案 0 :(得分:0)

DECLARE @ColName nvarchar(4000)
DECLARE @TableName nvarchar(4000)
DECLARE @ColName2 nvarchar(4000)
DECLARE @Parameter nvarchar(4000)
set @TableName='tblTest'
set @ColName='ID'
set @ColName2='colValue'
set @Parameter=1

DECLARE @sql nvarchar(4000)
SET @sql = ' SELECT '+@ColName+' from ' + @TableName+ ' where '+@ColName2+'='+@Parameter
exec(@sql)

这就是我在做的事情。你可以将上面给出的参数传递给存储过程,这将做一个技巧

答案 1 :(得分:0)

也许这很有用......
//方法

 public void insertCheque()
            {

         try {     

            SqlParameter[] param = new SqlParameter[5];
            param[0] = new SqlParameter("@IdBankChequeBook", SqlDbType.Int);
            param[1] = new SqlParameter("@IdBankChequeType", SqlDbType.Int);
            param[2] = new SqlParameter("@IdBankChequeStatus", SqlDbType.Int);
            param[3] = new SqlParameter("@TransType",SqlDbType.Int);
            param[4] = new SqlParameter("@ClientID",SqlDbType.Int);

//将sql参数发送到存储过程

 SqlHelper.ExecuteNonQuery(Connecting.LCM, CommandType.StoredProcedure, "InsertBankCheque",param); 



        }
        catch (Exception ex)
        {

        }   
    }

//存储过程相关

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go      
ALTER PROCEDURE [dbo].[InsertBankCheque]    
@IdBankChequeBook int ,
@IdBankChequeType int ,
@IdBankChequeStatus int ,
@TransType int ,
@ClientID int ,
As
    Insert into BankCheque
    (
    IdBankChequeBook,
    IdBankChequeType,
    IdBankChequeStatus,
    TransType ,
    ClientID )   
     values 
        (
        @IdBankChequeBook,
        @IdBankChequeType,
        @IdBankChequeStatus,
        @TransType,  
        @ClientID )