我正在使用 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/