Tag: sql server 2008

MappingException Edm.String与SqlServer.varbinary不兼容

我很难解决一个愚蠢的映射问题。 基本上发生了什么是我在sql db表中有一个字段,它是一个varbinary用于安全性(加密和解密)。 所有这些东西都很好,但看起来似乎edmx将该表中的字段视为一个字符串,我认为它应该看作是数据只是一个二进制字符串。 这是我收到的错误消息。 Schema specified is not valid. Errors: ReadModel.Model.msl(836,12): error 2019: Member Mapping specified is not valid. The type ‘Edm.String [Nullable=True,DefaultValue=,MaxLength=256,Unicode=,FixedLength=False]’ of member ‘field-in-question’ in type ‘Lib.ReadModel.TableName’ is not compatable with ‘SqlServer.varbinary’ [Nullable=True,DefaultValue=,MaxLength=256,FixedLength=False]’ of member ‘field-in-question’ in type ‘Model.Store.TableName’. 有没有人有这样的问题? 也许我有一些东西可以忽略? 也许能够指出我正确的方向? 我在寻找解决问题的信息方面存在问题而且处于亏损状态。

如何使用SqlDataRecord处理Nullable类型

我正在解析XML(LINQ to XML),并且我在元素/属性为空的情况下使用可空类型( int?和decimal? )。 但是,在构建我的集合以传递给DB(使用TVP)时,我不知道如何处理值实际为null的情况。 我无法将null传递给SqlDataRecord SetInt32或SetDecimal,我不想设置为零….我实际上希望它为null。 告诉我int没有超载? 下面的计数是可以为空的类型( int? Count) SqlDataRecord rec = new SqlDataRecord( new SqlMetaData(“Name”, SqlDbType.VarChar, 50), new SqlMetaData(“Type”, SqlDbType.VarChar, 50), new SqlMetaData(“Count”, SqlDbType.Int)); rec.SetString(0, dm.Name); rec.SetString(1, dm.Type); rec.SetString(2, dm.Count); 任何想法如何处理这个而不传递零(保持null)?

SqlTransaction.Commit()之前的SqlCommand.Dispose()?

是否可以在提交事务之前处理分配给事务的命令? 我自己测试了以下代码,它似乎运行良好,但这是一个相当小的例子,所以如果有人肯定知道我正在寻找确认。 internal static void TestTransaction() { try { Program.dbConnection.Open(); using (SqlTransaction transaction = Program.dbConnection.BeginTransaction()) { Boolean doRollback = false; for (int i = 0; i < 10; i++) { using (SqlCommand cmd = new SqlCommand("INSERT INTO [testdb].[dbo].[transactiontest] (testvalcol) VALUES (@index)", Program.dbConnection, transaction)) { cmd.Parameters.AddWithValue("@index", i); try { cmd.ExecuteNonQuery(); } catch (SqlException) { doRollback = […]

ASP.NET MVC中的访问控制使用基于的Enum进行SQL中的int权限管理

这个问题的灵感来自这个关于 ASP.NET MVC中访问控制的SO问题 。 在这里,我试图将接受的答案带入一个切实的解决方案。 答案提到使用FileSystemSecurity作为管理权限的灵感。 这里我还使用带有Flags属性的枚举来定义所有对象的ACL。 此外,我的对象的每个成员都将存储在SQL中的一列中。 假设简化的Linq2SQL,EF或nHibernate ORM映射。 编辑:为此方法添加了以下好处/原理 此安全模型的灵感来自FileSystemRights ,即管理文件级权限的.NET方法。 我喜欢这种方法的主要原因之一是,我可以通过将所有单独的ACL进行OR运算来轻松创建所有权限的摘要。 我也喜欢我可以添加DENY ACL来删除inheritance的权限。 List PermissionsList = GetACLForObject(ItemID, UserID); foreach (var acl in PermissionsList) { // The following enum has the [FlagsAttribute] applied so the .ToString() is pretty PermissionWithFlagsEnum sampleForSO = (PermissionWithFlagsEnum )acl.Permission; Console.Writeline (“Setting ” + sampleForSO.ToString() + ” permission for group: […]

将值传递给一个表并在父表中更新

我有两张桌子。 dbo.Emp EmpID(PK)| 名称| typeid的(FK) dbo.EmpType TypeID(PK)| 类型 TypeID:仅在dbo.EmpType中自动增量 当我在Emptype中更新TypeID的值时,它需要存储在dbo的TypeID中.Emp我使用的SP不起作用。 Create Procedure bridge_Type( @EmpID INT, @Name varchar(50), @Mob2 numeric(10,0), @Email varchar(50), @Type varchar(50) ) AS DECLARE @TYPEID int Set NOCOUNT OFF BEGIN TRANSACTION Insert into dbo.Emp VALUES (@EmpID, @Name, @Mob2, @Email, @TYPEID) IF @@ERROR 0 BEGIN ROLLBACK RETURN END INSERT INTO dbo.EmpType VALUES (@Type) IF […]

合并来自2个表的数据

免责声明:这是一个测试/假人/假数据库 嗨伙计们,我有一个问题,下面是2表结构。 当我使用 SELECT CONVERT(char(80), InvDate,3) AS InvDate,InvoiceNo,EmployerCode,TaxAmount + SubTotal AS Amount,” AS Payment FROM dbo.Invoice; http://sofzh.miximages.com/c%23/icpzpy.png 我希望在列中添加患者名称,其中将标记为发票编号。 所以我的意思是,当执行查询时,它应该向我显示标记为发票号的患者详细信息。 但是在两个表结构中都没有链接。 我能想到的唯一联系是“MedicalRecordID”。 我尝试使用UNION函数没有给我所需的输出。 有帮助吗? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace MedicalDataExporter { public partial class frmSales : Form { public frmSales() { InitializeComponent(); […]

如何在ASP.NET C#中的用户控件之间传递值

我的页面中有3个用户控件。 其中一个用户控件是关于fileUploading,第二个是关于fileUploade关键字。 当文件上传时,fileUploading usercontrol返回记录该插入的Id。 现在我想在fileUploaded关键字中使用此id,但是当插入标签以查看fileuploading中的id时,用户控件显示右侧id例如1或2或..但是在关键字usercontrol中仅显示0值。 我使用entity framework工作。 如何在关键字用户控件中访问此ID。 谢谢。

SQL Server浮点数据类型的理解

https://msdn.microsoft.com/en-us/library/ms173773%28v=sql.110%29.aspx 我在例如具有浮点类型列的表中插入值(0.12346789123456789123456789) ,查询并返回包含17位数的0.1234567891234568 。 我有3个问题 如何回溯输入和输出的二进制表示? 该文档称它默认使用53位。 我正在使用SQL Server Management Studio,我不知道如何在声明列类型时指定n值。 数字17不包含在文件中,我想知道它来自哪里。 在Big或Little Endian系统中,我想知道如何处理这样的输入并将其转换为低级字节系统的输出。 如果有人知道解释,我会很感激。

sql server和asp.net中的窗口身份validation

我正在为我的asp.net web应用程序使用sql数据库的窗口身份validation。但是在我将我的网站部署到另一台计算机后,我无法连接到数据库。是否有任何属性用于窗口身份validation以在web中设置用户名和密码.config文件。

C#以List作为参数插入到SQL表中

在这个精彩论坛的专家的真诚帮助下,我已经能够解析由SharePoint列表返回的我的xml,以将所需的列表项目转换为C#列表。 XDocument xdoc = XDocument.Parse(activeItemData.InnerXml); XNamespace z = “#RowsetSchema”; List listID = (from row in xdoc.Descendants(z + “row”) select (int)row.Attribute(“ows_ID”)).ToList(); List listTitle = (from row in xdoc.Descendants(z + “row”) select (string)row.Attribute(“ows_LinkTitle”)).ToList(); 我创建了一个SQL表,我想使用Lists listID和listTitle作为参数在我的表中插入值 System.Data.SqlClient.SqlConnection sqlConnection1 = new System.Data.SqlClient.SqlConnection(MyconnectionString); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(); cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = “INSERT TechOpsProjectTracker (ID, [Project Name]) VALUES (@ID, […]