Tag: sql

事务在提交并且连接关闭后是否可以回滚?

事务在提交并且连接关闭后是否可以回滚? finally { // Commit the transaction. sqlTran.Commit(); reader.Close(); reader.Dispose(); conn.Close(); conn.Dispose(); } 我想给用户一个Opps选项! 滚回去 。 所以如果它被提交可以回滚吗?

C#和PostgreSQL

任何人都可以向我展示使用从PLSQL返回的游标到c#代码的工作示例吗? 我发现很多例子展示了如何用返回的数据填充dataSet,但我找不到如何将该游标与DataReader一起使用,因此我有{unnamed portal}。 NpgsqlTransaction tr = (NpgsqlTransaction) Connection.BeginTransaction(); NpgsqlCommand cursCmd = new NpgsqlCommand(“someStoredProcedure(:inRadius)”, (NpgsqlConnection) Connection); cursCmd.Transaction = tr; NpgsqlParameter rf = new NpgsqlParameter(“ref”, NpgsqlTypes.NpgsqlDbType.Refcursor); rf.Direction = ParameterDirection.InputOutput; cursCmd.Parameters.Add(rf); 我必须写这里使用NpgsqlDataReader myReader; 正确。 tr.Commit(); 当我在sql命令之后写’fetch’时它可以工作,但它不合适。 thnx提前

表有2个外键entity framework

我有一个由2个外键组成的表。 这些只是表格的元素。 该表旨在创建其他2个表之间的关联。 例如:表是Users_Products,只有2列是UserId和ProductID,都是外键。 当我从数据库生成EF对象时,它没有创建Users_Products对象,它只自动创建导航属性。 现在如何使用EF在我的Users_Products表中插入数据?

通过存储过程将数据列表返回给dapper

我试图通过存储过程使用Dapper返回数据 我的DTO类与下面类似(为简洁起见,删除了一些属性) public class CarDTO { public int CarID { get; set; } public string Manufacturer { get; set; } public List CarOptions { get; set; } } 所以基本上在DB中我有一个CarOption表,它有一个CarID列 – 即Car可以有很多选项。 我分钟的DAL层呼叫如下: private string getCarDataSp = “[dbo].[GetCarData]”; public IEnumerable GetCarData(int customerId, int year) { return Get(db => db.Query(getCarDataSp , new { CustomerID = customerId, Year […]

如何在Npgsql中将查询的表名作为命令参数提供?

我想提供查询的表名作为命令参数,如下所示: public class Foo { private const String myTableName = “mytable”; public void Bar() { NpgsqlCommand command = new NpgsqlCommand(“SELECT * from :tableName”, connection); command.Parameters.Add(new NpgsqlParameter(“tableName”, DbType.String)); command.Parameters[0].Value = myTableName; } } 这似乎导致了这个查询: “SELECT * from E’mytable'”导致错误(请注意单引号)。 我真的需要为此进行字符串连接吗? 从安全角度来看无关紧要,因为用户无法更改表名,但创建SQL查询的字符串连接总是让我感到毛骨悚然…… 谢谢,埃里克

创建动态SQL DbParameter值

第一次用户 – 希望这是正确的格式: 我想知道我是否可以创建SQL DbParameter值,尤其是ParamaterName。 我目前的代码是: DbCommand dbCommand = SqlDb.GetStoredProcCommand(uspCommand); DbParameter ProcessedFileName = dbCommand.CreateParameter(); ProcessedFileName.DbType = DbType.String; ProcessedFileName.ParameterName = “@FileName”; ProcessedFileName.Value = pstrProcessedFileName; dbCommand.Parameters.Add(ProcessedFileName); 我想补充一下: ProcessedFileName.ParameterName = “@FileName1”; ProcessedFileName.ParameterName = “@FileName2”; ProcessedFileName.ParameterName = “@FileName3”; ProcessedFileName.ParameterName = “@FileName4”; 来自数组的@FileNames 。

来自2 ComboBox的类别影响第三个Combobox for datagridview with SQL

把它写成短篇小说 我想要“SELECT companyName FROM table where mainCategory = firstcombobox and subcategory = secondcombobox”,我该怎么做sql查询? ==========================长话 我已经创建了一个带有编码的表单,但我需要额外的帮助。 有点,我坚持试图弄清楚如何让第三个combobox值由第一个和第二个决定。 我想要的是,获得主类别和子类别的值以实现第三个combobox的列表。 我只需要SQL查询,例如:“SELECT companyName FROM table where maincategory = firstcombobox and subcategory = secondcombobox” 然后在主要和子类别的选择中显示公司名称。 像这样 : 对于主类别和子类别,我使用此代码。 此代码还包括第3个ComboBox代码,该代码现在在没有第一个和第二个combobox连接到第3个combobox代码的情况下运行。 public partial class User : Form { Dictionary<string, List> Category = new Dictionary<string, List>(); DataSet ds1; public User() { InitializeComponent(); } […]

将导航属性映射到实例var作为外键

我正在使用.Net Framework 4.0开发一个entity framework代码优先(v.4.4.0.0)C#库。 我不知道如何建立零对一的关系。 我的模型如下: 只能由一个用户( StarterUserId )创建Talk 。 Talk只能有一个收件人用户( RecepientUserId )或只有一个组( RecipientGroupId )。 注意 :这意味着如果RecipientGroupId不为null,则RecipientGroupId为null; 如果RecipientGroupId为null,则RecepientUserId不为null。 user可以是零或n个Talks的接收者,但是一个group可以有零个或一个Talk 。 这是Talk课程: [DataContract] public class Talk { [DataMember] public int TalkId { get; set; } [DataMember] public int StarterUserId { get; set; } [DataMember] public int? RecipientUserId { get; set; } [DataMember] [ForeignKey(“RecipientGroup”)] public int? RecipientGroupId […]

使用sql server express为ac#.net winform应用程序创建多个用户

我在sql server express中有一个sql数据库。 我有一个登录MAINLOGIN,用于此数据库。 我希望通过多个用户U1,U2,U3在这个数据库中插入数据,每个用户都有不同的用户ID和密码。 这些用户将由MAINLOGIN手动或通过winform应用程序创建。 因此,在创建MAINLOGIN时,我会允许他进一步创建登录。 为此,我该怎么办? 我无法创建MULTIPLE用户,因为对于一个数据库,只能在一次登录时创建一个用户。 所以我应该创建多个登录,L1,L2,L3,然后映射,U1,U2,U3到他们。 或者,有更好的方法吗? 像应用程序角色等 我不想使用Windows身份validation。 因为如果我知道系统密码,那么我可以通过应用程序简单地连接sql并插入错误的数据。

升级WinForms SQLite数据库技术

我一直在研究数据库的升级程序,特别是SQLite类型的升级程序。 我被困在一个程序如何知道,“嘿……这个表不存在,让我们创建它!” 或“嘿,它确实存在,但它的三个版本落后,让我们更新它!” 我的意思是,我可以编写特定于每个表的每个版本的代码(基本上列出了应该包含哪些列…),然后将它全部转储到每个表的大量if语句或类似的东西,但那会疯了。 -`REALLY INSANE。 (我会包含那些代码,所以你们可以指出如何改进,但我已经知道这肯定不是正确的方法吗?) – 实际使用什么技术来升级数据库? 我想详细说明: a)检查表是否存在的最佳技术是什么? b)程序如何知道表后面有多少个版本? – 这适用于SQLite 3,用于桌面应用程序。