C# 最佳方法SQL Server计算列与代码内方法

C# 最佳方法SQL Server计算列与代码内方法,c#,sql,sql-server,linq,linq-to-sql,C#,Sql,Sql Server,Linq,Linq To Sql,我目前有一个连接到SQL Server 2012的CRUD ASP.NET MVC应用程序。最后,应用程序将数据导出到表单。表单上的一个字段称为表单编号,我希望它是M-“主键” 最好在C代码中添加M-,还是使用计算列作为最佳方法?(添加另一列M-'PK') 如果还有其他(更好的)选择,请告诉我 一个例子: private DataSet selectID(string studentId) { SqlConnection conn =

我目前有一个连接到SQL Server 2012的CRUD ASP.NET MVC应用程序。最后,应用程序将数据导出到表单。表单上的一个字段称为
表单编号
,我希望它是
M-“主键”

最好在C代码中添加
M-
,还是使用计算列作为最佳方法?(添加另一列
M-'PK'

如果还有其他(更好的)选择,请告诉我

一个例子:

   private DataSet selectID(string studentId)
            {
                SqlConnection conn = "connecttoserverstring";
                SqlCommand cmd = new SqlCommand("select 'M-' + cast(ID as varchar(10)) from table, conn);            
                SqlParameter p = new SqlParameter("@id", studentId);
                }
主键:
1123

表格输出

Form Number: M-1123

参见C中的示例:

   private DataSet selectID(string studentId)
            {
                SqlConnection conn = "connecttoserverstring";
                SqlCommand cmd = new SqlCommand("select 'M-' + cast(ID as varchar(10)) from table, conn);            
                SqlParameter p = new SqlParameter("@id", studentId);
                }
即使id是int,我们也将其转换为
varchar
,这样我们就可以
将它与'M-'或任何你想要的东西连接起来
输出的简单示例为: -在SQL Server中运行此操作

select 'M-' + cast(1 as varchar(10));

一个计算过的列会起作用吗?这个数字是如何生成的?我假设你的pk是一个int值,加上一个'M-'将使它成为一个字符串值,所以标识就消失了!我建议创建一个新的coll,并在应用程序代码中更好地处理它。那么,您希望M前缀存储在DB中还是仅显示给用户?很高兴提供帮助:)!给我来一杯!kkk