Tag: sql

我怎样才能从存储过程中返回所有记录?

我正在使用此存储过程 ALTER PROCEDURE [dbo].[MyProcedure] @pSelect nvarchar(max) AS BEGIN SET NOCOUNT ON; DECLARE @SQL nvarchar(max) SET @SQL = ‘select ‘ + @pSelect + ‘ from vwAcdAdmissionWithvwAcdAdmissionSessionDetailWithAllMaster’; EXEC (@SQL) END 并使用linq从c#.net entitydatamodel执行它 shoolSoulDataEntites db = new schoolSoulDataEntites; var ss = db.Myprocedure(“column1,column2”); 但它返回一个整数值我希望程序结果的所有记录plss帮助我

构建和部署工作,但不运行

当我尝试部署或构建报告时,我能够成功。 没有错误。 但是,当我尝试在本地运行它时,我得到: 我会非常感谢我可以从哪里开始解决这个问题? 我在Windows 7,64位的Visual Studio 2008中运行SSRS 2008。

将数据库中的图像检索到图像标记中

我的Web应用程序允许用户发送报告,并且最多可以将5个图像作为varbinary(MAX)插入数据库(SQL Server)。 我现在正在找到一种方法来检索用户发送的特定报告的所有图像。 以前,我曾经通过aspx页面逐个检索图像1。 但是当用户只插入5个图像时,我遇到了一个问题。我的另外4个图像标签将显示空图像。 所以现在我试图找到一种方法,如果我可以在1个图像标签中基于报告检索这些图像。 图像与之前的报告存储在同一个表中,现在我将其更改为2个表。 MemberReport是报告的所有详细信息,MemberReportImage是报告的所有图像。 下面的代码允许我根据memberreportid将我的MemberReportImage表中的第一个图像检索到图像标记中,但是我想一次检索具有相同memberreportid的所有图像而不是图像标记。 正如我认为它需要一个循环来获取所有图像,但我不知道该怎么做。 所以我需要有人来帮助我。 谢谢! protected void Page_Load(object sender, EventArgs e) { string strQuery = “select image from MemberReportImage where memberreportid='” + Session[“memberreportid”] + “‘”; SqlCommand cmd = new SqlCommand(strQuery); DataTable dt = GetData(cmd); if (dt != null) { download(dt); } } private DataTable GetData(SqlCommand cmd) { DataTable […]

如何在不提交和重新查询的情况下获取记录的ID?

我有一个设置为自动增量的ID(显然是int)。 var dc = new DataContext([STRING]); var usersTable = dc.GetTable(); var user = usersTable.FirstOrDefault(o => o.Username.Equals(“NAME”)); if (user == null) { user = new Audit_User() { Username = “NAME” }; usersTable.InsertOnSubmit(user); } //HERE – I need access to the user Id dc.SubmitChanges(); 有关更多上下文,请参阅标签。

使用IN运算符和存储过程参数

我正在ASP.NET 2.0中构建一个网站,我正在处理的页面的一些描述:ListView显示来自我的访问数据库的一个表(post),以及一个用于过滤行的多选模式的ListBox(按论坛名称,值= forumId)。 我正在将ListBox选定的值转换为List,然后运行以下查询。 参数: OleDbParameter(“@Q”,list.ToString()); 程序: SELECT * FROM sp_feedbacks WHERE forumId IN ([@Q]) 问题是,它不起作用。 即使我使用字符串1,4,“1”,“4”或“1,4”从MSACCESS 2007运行它,我也得到零结果。 只有一个论坛被选中时,查询才有效。 (例如在(1)中)。 解? 所以我想我可以使用WHERE和许多OR,但我真的想避免这个选项。 另一个解决方案是将DataTable转换为列表然后使用LINQ过滤它,这似乎是非常混乱的选项。 在此先感谢BBLN。

用于数据访问层的SQL连接字符串

我正在使用直接连接字符串 string ConString = “Data source=.\\Sqlexpress; initial catalog=MyDB; integrated security=SSPI”; 我需要一个存储在web.config文件中的连接字符串,如: 这个问题是我的数据访问层无法访问它。 我正在研究3层架构模型。 我不想添加对我的数据访问层的引用,例如System.Web等。每天我的类库都会获得越来越多的类。 我意识到是时候使用全局可访问的连接字符串,这样当我最终提交我的项目时,连接字符串将只需要在大学计算机上的一个地方进行更改。

使用SMO编写PARTIAL数据内容的脚本(仅限与WHERE子句匹配的行)

我使用SMO用SQL服务器数据库的数据填充SQL Compact数据库。 这是我实际使用的代码: foreach(Table l_tblCurrent in l_dbDatabase.Tables) { if(l_tblCurrent.IsSystemObject) continue; ScriptingOptions l_scOptions = new ScriptingOptions(); l_scOptions.NoIdentities = true; l_scOptions.NoCollation = true; l_scOptions.NoCommandTerminator = true; l_scOptions.NoFileGroup = true; l_scOptions.ScriptSchema = true; l_scOptions.ScriptData = true; foreach(string l_strCurrent in l_tblCurrent.EnumScript(l_scOptions)) { l_sccDBFCommand.CommandText = l_strCurrent.Replace(“[dbo].”, “”); l_sccDBFCommand.ExecuteNonQuery(); } } 它工作得很好,但对于几个表,我不想复制所有行。 我希望只能选择与要复制的WHERE子句相匹配的行。 可能吗 ?

SQL数据读取器:没有数据时读取的尝试无效

我试图使用SqlDataReader运行查询,然后在消息框中显示结果,但我不断收到错误 没有数据时读取的尝试无效。 这是我的代码。 public void button1_Click(object sender, EventArgs e) { string results = “”; using (SqlConnection cs = new SqlConnection(@”Server=100-nurex-x-001.acds.net;Database=Report;User Id=reports;Password=mypassword”)) { cs.Open(); string query = “select stationipaddress from station where stationname = @name”; using (SqlCommand cmd = new SqlCommand(query, cs)) { // Add the parameter and set its value — cmd.Parameters.AddWithValue(“@name”, textBox1.Text); using (SqlDataReader […]

检查表是否存在在SQLite中保持连接打开

所以我有一个方法可以检查数据库中是否存在一个表,其定义如下: internal override bool TableExists(string tableName) { bool tableExists = false; // Check the Tables schema and see if the table exists using (SQLiteConnection conn = (SQLiteConnection) CreateConnection()) { conn.Open(); DataRow[] rows = conn.GetSchema(“Tables”).Select(string.Format(“Table_Name = ‘{0}'”, tableName)); tableExists = (rows.Length > 0); } // Actually called elsewhere in the code, just here for testing. File.Delete(DatabaseEnvironmentInfo.GetPrimaryDataFile(DatabaseName)); […]

如何从连接字符串中提取数据库名称而不管RDBMS?

我正在研究那个不了解正在使用的RDBMS的类。 当然,其余的应用程序都很清楚它。 连接字符串输入到此类。 我需要数据库名称。 如何从连接字符串中提取数据库名称而不管RDBMS? 我读了以下问题: 如何使用SqlConnectionStringBuilder从连接字符串获取数据库名称 提取sql连接字符串的属性 在那里建议采用以下方法: 使用连接字符串构建器类: 大多数答案使用连接字符串构建器和特定的RDBMS。 所以,我必须使用SqlConnectionStringBuilder或MySqlConnectionStringBuilder等。这是特定于RDBMS的。 为了实现这个跨RDBMS,我必须使用DbConnectionStringBuilder 。 以下是DbConnectionStringBuilder的代码: DbConnectionStringBuilder builder = new DbConnectionStringBuilder(); builder.ConnectionString = connectionString; string databaseName = builder[“Initial Catalog”] as string; 这种方法的问题是使用的关键”Initial Catalog” 。 由于连接字符串的语法对于每个RDBMS是不同的,因此其他RDBMS的连接字符串可能不包含密钥,并且代码不起作用。 例如,上面的代码不适用于跟随有效的MySql连接字符串,因为它不包含密钥。 Server=MyServer;Database=MyDB;User ID=MyUser;Password=MyPassword; 使用Connection类: 同样,我必须使用IDbConnection接口或DbConnection抽象类来构建这个跨RDBMS。 我无法创建接口或抽象类的实例。 我必须使用具体类来实例化它,它再次成为特定于RDBMS的。 字符串处理: 使用C#或正则表达式或类似的字符串处理function解析字符串。 正如我之前所说,连接字符串的语法因RDBMS而异,但这不起作用。 我能想到的其他解决方法是使用一些powershell逻辑,例如检查多个键( Initial Catalog, Database等)而不是一个。 如果可能,我想避免这种情况。 这可能是无穷无尽的条件,因此不是一种可靠的方式。 如果这只是要走的路,请建议可能的密钥来检查那些覆盖所有RDBMS的连接字符串的所有可能语法。 注意: 当我说“跨RDBMS”或“所有RDBMS”时,我实际上并不是指“地球上的所有RDBMS”。 解决方案应涵盖至少三个RDBMS(SQL Server,My […]