c# - 使用 MS SQL 服务器在 SQL 查询中给表友好名称

标签 c# .net sql-server ado.net dataset

我正在使用 ADO.NET 来执行存储过程。存储过程有多个选择语句。当我访问 DataSet 时,表被命名为 Table1、Table2 等。我想为这些表中的每一个提供用户 friend 名。我不想在我的 SQL 查询中使用表变量或临时表。我还有其他选择吗?

我正在使用以下代码获取数据集

SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();

DataSet ds = new DataSet();
try
{
    con.ConnectionString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
    con.Open();
    cmd = new SqlCommand("sp_GetData", con);
    cmd.Parameters.Add(new SqlParameter("@ParamOne", param));
    cmd.CommandType = CommandType.StoredProcedure;
    da.SelectCommand = cmd;
    da.Fill(ds);

}

我也不想这样

da.TableMappings.Add("Table", "MyTable1");
da.TableMappings.Add("Table1", "MyTable2");
da.TableMappings.Add("Table2", "MyTable3");

或者这个

ds.Tables[0].TableName = "NametbA";
ds.Tables[1].TableName = "NametbB";

我最好在 SQL 查询中指定名称。我想使用这种方法的原因是,我会将这个数据集原封不动地传递给一个函数,该函数会将表名写入文件。

请提供您的建议。

谢谢

最佳答案

遗憾的是无法自动设置。您必须以某种方式将其提供给代码。

一种选择是更改结果的结构,使结果集数量增加一倍,其中奇数是名称,偶数是数据:

-- Table name
SELECT 'nameoftable' AS TableName

-- Data
SELECT * FROM ...

c#代码(视为伪代码):

myDataSet.Tables[1].TableName = myDataSet.Tables[0]["TableName"].ToString();

关于c# - 使用 MS SQL 服务器在 SQL 查询中给表友好名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559885/

相关文章:

c# - 从默认的 mvc 应用程序数据库中删除用户

c# - 1 级 C#/SQL Server 开发人员测试

jquery - ko.applyBinding 使用 Knockout 刷新搜索结果?

c# - 如何合并两条路径

sql - 如何对 SQL Server Express 进行实时更改

c# - 使用 Reflections 访问 Enum 并使用 "Enum.TryParse"比较值

c# - System.Core 未添加到对程序集的引用

sql-server - 为什么在 T-SQL 中执行循环如此困难

sql-server - 如何检测READ_COMMITTED_SNAPSHOT是否启用?

c# - C#中的tabcontrol页面清空所有控件