Tag: sql

用逗号分隔的类似数组的字符串执行存储过程

可能重复: 使用逗号分隔参数帮助sql搜索查询 我想编写一个存储过程,在表上执行select并需要一个varchar(max)类型的输入变量。 我想发送一堆由输入参数分隔的值,例如 ‘Jack’,’Jane’,’Joe’ 然后获取包含其中一个名称的行。 在SQL中,代码将是 Select * from Personnel where Name in (‘Jack’,’Joe’,’Jane’); 现在我想在我的C#应用​​程序中有一个变量,比如strNames并填充它 string strNames = “‘Jack’,’Joe’,’Jane'”; 并将此变量发送到SP并执行它。 就像是 Select * from Personnel where Name in (”Jack’,’Joe’,’Jane”) — this is wrong 但是, 如何告诉SQL Server运行此命令? 我需要做到这一点,我知道这是可能的,请给我一些线索。

SQL Compact Edition 3.5 – 不允许访问数据库文件

我使用SQL Server Compact 3.5开发了一个应用程序(100%本地,无法访问服务器),它在我的计算机上运行良好。 但是,当我在另一台计算机上部署它时,它显示以下错误: Access to the database file is not allowed. [ File name = data\BDApepucCE.sdf ] 我部署在Windows XP计算机上。 每当我尝试在数据库上写入时它都会显示此错误,但是,当我阅读时它会起作用。 我在Windows 7计算机上进行了测试,它的工作率为100%,除非通过家庭组(即本地网络)访问该文件,但在读取/写入时它都失败了。 平台:Windows 7,Visual Studio 2010和.NET 4 Client Profile

从数据库中读取SQL Varbinary Blob

我正在努力将文件保存到sql blob到varbinary(max)列,并且现在有了保存方面的工作(我相信)。 我无法弄清楚如何读取数据,因为我正在使用存储过程检索我的数据库值我应该能够访问列数据,如ds.Tables [0] .Rows [0] [ “blobData”]; 所以我有必要像我在下面的例子中看到的那样有一个SQLCommand等: private void OpenFile(string selectedValue) { String connStr = “…connStr”; fileName = ddlFiles.GetItemText(ddlFiles.SelectedItem); using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandText = “SELECT BLOBData FROM BLOBTest WHERE testid = ” + selectedValue; using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) […]

删除/替换国际字符

我在C#中创建一个小应用程序,根据从SQL查询传递的信息搜索文件名。 在从SQL查询传递的数据中,有时会出现(可能是我公司的国际访问者的多个实例)其中包含国际字符的名称。 我们的文件名是英文字母,没有特殊字符。 我想找到一种方法将国际字符转换为纯英文字母字符,以便我可以完成此搜索? 这可以通过db查询完成,还是必须通过应用程序代码完成? 例如: Hervé需要转换为Herve 要么 Mañana需要转换为Manana

如何删除Linq to Entity中的多个记录?

我在sql中有一个tblA: id int (primary key) fid int tblA中的数据是: 1 1 2 1 3 2 4 2 5 3 6 3 我通过以下代码删除一条记录 : DatabaseEntities obj = new DatabaseEntities(); int i = 2; tblA t = obj.tblA.Where(x => x.fid == i).FirstOrDefault(); obj.DeleteObject(t); obj.SaveChanges(); 我通过以下代码删除多条记录: DatabaseEntities obj = new DatabaseEntities(); int i = 2; while (obj.tblA.Where(x => x.fid […]

将byte 数组转换为DataTable

我在类型为varbinary的字段中将DataTable类型的对象保存到SQL 2005数据库中。 我想要找回它,但我无法输入它。 这就是我拯救它的方式。 MemoryStream memStream = new MemoryStream(); StreamWriter sw = new StreamWriter(memStream); sw.Write(dt); con.Open(); using (SqlCommand cmd = new SqlCommand(“INSERT INTO Tables(TableName, TableData, QuestionID) VALUES (@TableName, @TableData, @QuestionID)”, con)) { cmd.Parameters.Add(“@TableName”, SqlDbType.VarChar).Value = “a new table”; cmd.Parameters.Add(“@TableData”, SqlDbType.VarBinary,Int32.MaxValue).Value = memStream.GetBuffer(); cmd.Parameters.Add(“@QuestionID”, SqlDbType.VarChar).Value = “2”; cmd.ExecuteNonQuery(); } ‘dt’是DataTable对象实例。

在SQL数据库和EF6中保存标志枚举。 这可能吗?

在ASP.NET应用程序上,我有一个标志枚举如下: [Flags] enum Target : int { None = 0, Group = 1, Student = 2, Professor = 4, All = Group | Student | Professor } 我可以使用Entity Framework 6在SQL数据库表中保存包含多个项目的值吗? 怎么会得救? 谢谢你,米格尔

使用Blob在SQLite中存储Byte数组

对于我的应用程序,我正在尝试在我的SQLite应用程序中存储一个字节数组,我用这种方式填充我的SQLite数据库: public bool InsertMessage() { //create string SQl and fill it with the SQLite query for inserting a message. string SQL = “Insert into ClockMessages(InsertDateTime, SendDateTime, Data) Values(‘”+ insertdatetime + “‘, null, ‘” + data + “‘);”; List pars = new List(); pars.Add(new SQLiteParameter(“InsertDateTime”, insertdatetime)); pars.Add(new SQLiteParameter(“Data”, data)); //send the SQl query and it’s parameters […]

使用LINQ to SQL读取巨大的表:耗尽内存与慢速分页

我有一个庞大的表,我需要阅读某个订单并计算一些汇总统计数据。 该表已经有正确顺序的聚集索引,因此获取记录本身非常快。 我正在尝试使用LINQ to SQL来简化我需要编写的代码。 问题是我不想将所有对象加载到内存中,因为DataContext似乎保留它们 – 但是尝试分页它们会导致可怕的性能问题。 这是故障。 最初的尝试是这样的: var logs = (from record in dataContext.someTable where [index is appropriate] select record); foreach( linqEntity l in logs ) { // Do stuff with data from l } 这非常快,并且流速很好,但问题是应用程序的内存使用量不断上升。 我的猜测是LINQ to SQL实体被保留在内存中而没有正确处理。 因此, 在创建了大量对象C#时读取内存不足后,我尝试了以下方法。 这似乎是许多人使用的常见Skip / Take范例,具有节省内存的附加function。 请注意,事先创建了_conn ,并为每个查询创建临时数据上下文,从而导致关联的实体被垃圾回收。 int skipAmount = 0; bool finished […]

选择查询以从SQL Server获取数据

我试图在我的C#代码中运行SQL Select查询。 但我总是得到-1输出 int result = command.ExecuteNonQuery(); 但是,如果我用于delete或insert工作相同的表… ConnectString也没关系。 请检查以下代码 SqlConnection conn = new SqlConnection(“Data Source=;Initial Catalog=;Persist Security Info=True;User ID=;Password=”); conn.Open(); SqlCommand command = new SqlCommand(“Select id from [table1] where name=@zip”, conn); //command.Parameters.AddWithValue(“@zip”,”india”); int result = command.ExecuteNonQuery(); // result gives the -1 output.. but on insert its 1 using (SqlDataReader reader = command.ExecuteReader()) { // […]