Tag: sql

SQL错误C# – 已定义的参数

嘿。 我有一个ac#应用程序,它解析txt文件并将数据从它们导入到sql db中。 我正在使用sqlite,现在正在将其移植到sql server。 它与sqlite工作正常但现在使用sql我正在处理文件时出错。 它将第一行数据添加到数据库中,然后说“参数@PartNumber已经被声明。变量名称在批处理或存储过程中必须是唯一的”。 这是我的整个代码和SQL表格布局……错误出现在代码末尾的最后一个insertCommand.ExecuteNonQuery()实例中… SQL表: CREATE TABLE Import ( RowId int PRIMARY KEY IDENTITY, PartNumber text, CMMNumber text, Date text, FeatType text, FeatName text, Value text, Actual text, Nominal text, Dev text, TolMin text, TolPlus text, OutOfTol text, FileName text ); 码: using System; using System.Data; using System.Data.SQLite; using System.IO; using […]

SQL Server添加字符串值时的列名无效

我是SQL Server的新手 我创建了这样的表: CREATE TABLE Accidents ( Id INT NOT NULL PRIMARY KEY IDENTITY, GUID VARCHAR(100), Latitude VARCHAR(100), Longitude VARCHAR(100), PhotoName VARCHAR(100) ) 我已经创建了一个Web服务来向该表插入数据,如下所示: SqlConnection con = new SqlConnection(@”workstation id=DatabaseSample.mssql.somee.com;packet size=4096;user id=???;pwd=???;data source=DatabaseSample.mssql.somee.com;persist security info=False;initial catalog=DatabaseSample”); public string addAccidentToDatabase(string GUID, string imageBase64String, string latitude, string longitude, string photoName) { SqlCommand cmd = new SqlCommand(“INSERT INTO […]

如何使DataReader从一开始就重新开始读取?

如何制作dr.Read(); 如果条件满足,从头开始再读? 就像是: sqlDataReader dr = command.ExecuteReader(); for(int i=0; dr.Read() ; i++){ if(condition ){ //let dr.Read() start reading from the beginning } }

具有可选参数的entity framework?

使用Entity Framework 5是否可以使用带有可选参数的存储过程,这样您就不必为每个未使用的参数添加空值? 我必须使用的存储过程有87个参数,其中只有2个是必需的。 我真的很讨厌在每个调用中放入85个空值的想法。

C#ASP.Net Parameters.AddWithValue拒绝参数的空值

我正在使用存储过程填充表。 该表允许名称的中间首字母’null’,但我收到以下错误消息: 过程或函数’uspInsertPersonalAccountApplication’需要参数’@MiddleInitial’,它未提供。 提前致谢! public void ProcessForm(string[] InputData) { string ConnString = System.Configuration.ConfigurationManager.ConnectionStrings[“AssociatedBankConnectionString”].ToString(); SqlConnection conn = new SqlConnection(ConnString); SqlCommand cmd = new SqlCommand(“uspInsertPersonalAccountApplication”, conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(“@AccountType”, “Savings”); cmd.Parameters.AddWithValue(“@AccountSubType”, “Savings”); cmd.Parameters.AddWithValue(“@ExistingCustomer”,”No”); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); }

WPF中的ConfigurationManager

我在wpf项目中有一个配置文件来存储connectionstring。 但是当我尝试获取AppSettings和ConnectionStrings时,我得到null。 WEB.config文件是这样的: 我试过几种方式: W1: ConnStr = ConfigurationManager.ConnectionStrings[“Trackboard”].ConnectionString; W2: ConnStr = ConfigurationManager.ConnectionStrings[0].ConnectionString; W3: ConnStr = ConfigurationManager.AppSettings[“Trackboard”]; W4: ConnStr = ConfigurationManager.AppSettings[0]; 他们都没有工作。 但这个工作: ConnStr = @”Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf”; (这意味着我不能使用配置文件,这违背我的意愿)我需要帮助。

存储过程或函数需要未提供的参数

我试图通过调用存储过程将数据插入SQL Server数据库,但我收到错误 *过程或函数’Insertion’需要参数’@Emp_no’,但未提供* 我的存储过程称为Insertion 。 我已经彻底检查了它,没有参数丢失,我也用标签检查了它。 标签显示值,但我不知道为什么我收到错误。 我的代码是 try { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Clear(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = “Insertion”; cmd.Connection = con; if (rdb_Male.Checked) { int @Emp_no = Convert.ToInt32(txtbx_Empno.Text); string @Emp_name = txtbx_Emp_Name.Text; double @phone = Convert.ToDouble(txtbx_Phone.Text); string @Email = txtbx_Email.Text; string @Password = txtbx_Pwd.Text; string @Gender = rdb_Male.Text; DateTime @Dob = […]

通过代码C#启用/禁用触发器

有没有办法在C#中以编程方式启用或禁用SQL SERVER触发器,或者我是否必须修改触发器本身来控制我的代码是否调用它?

在EntityFramework中更新或删除多个实体的建议做法是什么?

在SQL中,有时可能会写一些类似的东西 DELETE FROM table WHERE column IS NULL 要么 UPDATE table SET column1=value WHERE column2 IS NULL 或可能适用于多行的任何其他标准。 据我所知,最好的EntityFramework可以做的就像 foreach (var entity in db.Table.Where(row => row.Column == null)) db.Table.Remove(entity); // or entity.Column2 = value; db.SaveChanges(); 但是当然会检索所有实体,然后为每个实体运行单独的DELETE查询。 当然,如果有许多实体满足标准,那肯定要慢得多。 因此,简而言之,EntityFramework是否支持在单个查询中更新或删除多个实体?

资源池“default”中没有足够的系统内存来运行此查询。 在sql上

我有一个运行服务,每分钟可以获得50-100个查询。 这些都不是高成本的查询。 此服务已运行约3-4个月,没有任何错误。 突然几天前,它开始提供“资源池中没有足够的系统内存’默认’来运行此查询。” 偶尔会出错。 当我调查问题时,我看到sqlservr.exe正在使用~1.5 gb ram和%25的CPU(全部为1 / 4CPU)。 当我重新启动sqlservr.exe ,ram从~50mb开始并慢慢增加直到它变为~1.5gb然后导致使用它的应用程序崩溃。 在我进行了一些研究后,我发现它是由我使用的sql server版本引起的。 这是限制数字的快速版本。 所以我将我的sql server从‘2008r2 express’升级到‘2012 enterprise’ 。 当我启动服务时,我认为我的问题终于结束了,因为服务只使用了~60mb的内存,但不幸的是在一个小时内同样的问题开始发生,但这次我在windows任务管理器上看到的已用内存仍然是~60mb,没有超出任何限制。 我在Wcf服务中使用EntityFramework作为ORM。 SqlQueryNotification ,我有一些缓存操作的SqlQueryNotification (代理和东西)系统。 我错过了一些关键的配置点吗? 或者6GB的内存和我的4 CPU真的不够用吗? 但它不可能是因为同样的负载就像3个月一样,并且当时没有任何错误,并且代码也没有任何变化。