嗨,我在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)
原始表中的列数是已知的,但行数未知.任何人都可以帮忙
我正在构建一个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)