小编Mil*_*ler的帖子

SQL复杂动态Pivoting 2

嗨,我在SQL Server中尝试下表的透视

REFID | COL1 | COL2 | Sequence
1       abc    cde     1
1       lmn    rst     2
1       kna    asg     3
2       als    zkd     2
2       zpk    lad     1
Run Code Online (Sandbox Code Playgroud)

我希望输出为

        REFID | 1COL1 | 2COL1 | 3COL1 |1COL2|2COL2|3COL2
           1    abc     lmn      kna    cde   rst   asg
           2    zpk     als      null   lad   zkd   null
Run Code Online (Sandbox Code Playgroud)

原始表中的列数是已知的,但行数未知.任何人都可以帮忙

sql sql-server pivot

2
推荐指数
1
解决办法
436
查看次数

缺少dbcommand.parameters的addwithvalue

我正在构建一个sqlwrapper来处理MSsql和Sqlite,到目前为止我没有使用通用dbconnection,dataset和dataadapter的问题,但是使用dbcommand parameters.add是唯一的选择.我想像sqlcommand和sqlitecommand那样使用parameter.addwithvalue,但我不确定如何实现它.

例如,这是我的sqlitefactory:

public class SqlLiteFactory : SqlFactory
{
    public override DbConnection CreateConnection()
    {
        return new SQLiteConnection(ConfigurationManager.ConnectionStrings["ClientDBConnectionString"].ConnectionString);
        //return new SQLiteConnection("Data Source=Resources\\qaqc.sqlite;Version=3");
    }

    public override DataAdapter CreateAdapter(string command, DbConnection connection)
    {
        return new SQLiteDataAdapter(command, connection as SQLiteConnection);
    }

    public override DbCommand CreateCommand()
    {
        return new SQLiteCommand();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的实现:

DbConnection c = SqlHandler.Instance.CreateConnection();

DbCommand cmd = SqlHandler.Instance.CreateCommand();

cmd.Connection = c;
cmd.CommandText = "SELECT column FROM table WHERE syncstatus = 0 and UserName = @user GROUP BY column;";
cmd.Parameters.Add("@user");
cmd.Parameters["@user"].Value = SystemInformation.UserName; …
Run Code Online (Sandbox Code Playgroud)

sql ado.net

1
推荐指数
1
解决办法
3104
查看次数

标签 统计

sql ×2

ado.net ×1

pivot ×1

sql-server ×1