我正在使用entity framework的asp.net mvc 5和C#…我有function的模型和域类…现在我需要使用存储过程….我在运动挣扎。 我正在下面的代码第一个现有的数据库,我有存储过程写在那里。 我的问题是如何在我的Web应用程序中调用该存储过程。 存储过程: ALTER PROCEDURE [dbo].[GetFunctionByID]( @FunctionId INT ) AS BEGIN SELECT * FROM Functions As Fun WHERE Function_ID = @FunctionId END 领域类: public class Functions { public Functions() { } public int Function_ID { get; set; } public string Title { get; set; } public int Hierarchy_level { get; set; […]
create procedure sp_First @columnname varchar AS begin select @columnname from Table_1 end exec sp_First 'sname' 我的要求是传递列名作为input参数。 我这样试过,但是输出错了。 所以帮帮我
我需要传递一个“id的”数组到一个存储过程,从表中删除所有行,除了与数组中的id匹配的行外。 我怎样才能以最简单的方式做到这一点?
我试图从数据库上下文对象(使用Entity Framework 6.1.1)调用dynamicSQL存储过程来获取内容的表,以填充GridView控件。 我无法检索数据。 这是存储过程。 这是一个关于存储过程中的SQL注入的学生演示,所以我知道这是可注射的,没关系。 ALTER PROCEDURE dbo.SearchProducts @SearchTerm VARCHAR(max) AS BEGIN DECLARE @query VARCHAR(max) SET @query = 'SELECT * FROM dbo.Products WHERE Name LIKE ''%' + @SearchTerm + '%''' EXEC(@query) END 我后面用来执行存储过程的C#代码是: var db = new MyEntities(); var TEST_SEARCH_TERM = "product"; var result = db.SearchProducts(TEST_SEARCH_TERM); MyGridView.DataSource = result; MyGridView.DataBind(); 执行时,在Visual Studio的数据库资源pipe理器中,存储过程正常工作。 但是当在正在运行的ASP.NET应用程序中执行时,我在DataBind()方法中得到一个exception,因为result返回-1而不是包含存储过程的SELECT产生的对象的IEnumerable DataSet […]
我可以在我的程序中进行删除,插入和更新,并尝试通过调用从数据库创build的存储过程进行插入。 这个button插入我做得很好。 private void btnAdd_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(dc.Con); SqlCommand cmd = new SqlCommand("Command String", con); da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FirstName, @LastName)", con); da.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text; da.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text; con.Open(); da.InsertCommand.ExecuteNonQuery(); con.Close(); dt.Clear(); da.Fill(dt); } 这是调用名为sp_Add_contact的过程来添加联系人的button的开始。 sp_Add_contact(@FirstName,@LastName)的两个参数。 我在谷歌search一个很好的例子,但我没有发现什么有趣的。 private void button1_Click(object sender, EventArgs e) { […]
我想知道是否可以创build一个自动存储过程,每天在00:00,删除每个表的每一行超过7天。 我已经看到了一些解决scheme,但不知道它是什么,我正在寻找,如果有人有任何好的例子,会很好。 我知道这可以用python和php中的简单脚本来完成,但是我希望MySQL能够更自动化。 任何帮助将非常感激。 谢谢!
我一直在学习函数和存储过程很长一段时间,但我不知道为什么,什么时候应该使用函数或存储过程。 他们看起来和我一样,也许是因为我有点新手。 有人能告诉我为什么?
我不像我想要的那样熟悉Oracle。 我有大约25万条logging,我想每页显示100条logging。 目前我有一个存储过程,它使用数据适配器,数据集和dataadapter.Fill(dataset)方法从存储过程的结果中检索所有25万logging到数据集。 如果我有“页码”和“每页logging数”作为整数值,我可以作为parameter passing,什么是最好的方式来找回那个特定的部分。 比如说,如果我通过10页作为页码,120页作为页数,从select语句中可以得到1880年到1200年之类的东西,那么我脑中的math可能就会消失。 我用C#在.NET中这样做,认为这并不重要,如果我可以在SQL方面得到它,那么我应该很酷。 更新:我能够使用布赖恩的build议,而且工作得很好。 我想进行一些优化,但是页面会在4到5秒内完成,而不是一分钟,而且我的分页控制能够很好地与新的存储过程集成在一起。
我在“StackOverflow”( “LINQ初学者指南” )这篇文章中看了一下“LINQ 入门指南” ,但有一个后续问题: 我们即将开始一个新的项目,几乎所有的数据库操作都将是相当简单的数据检索(还有另一个项目已经写入数据)。 到目前为止,我们大部分的其他项目都使用存储过程来处理这些事情。 不过,如果更合理的话,我想利用LINQ到SQL。 所以,问题是这样的:对于简单的数据检索,哪种方法更好,LINQ到SQL或存储过程? 任何具体的赞成或反对? 谢谢。
我有一个存储过程,返回80列和300行。 我想写一个select,获得这些列中的2。 就像是 SELECT col1, col2 FROM EXEC MyStoredProc 'param1', 'param2' 当我使用上面的语法,我得到的错误: “无效的列名称”。 我知道最简单的解决scheme将是更改存储过程,但我没有写,我不能改变它。 有什么办法可以做我想要的吗? 我可以做一个临时表来放置结果,但是因为有80列,所以我需要制作一个80列的临时表才能得到2列。 我想避免跟踪所有返回的列。 我试图使用WITH SprocResults AS ….如马克build议,但我得到了2个错误 关键字“EXEC”附近的语法不正确。 )附近语法不正确。 我试图声明一个表variables,我得到了以下错误 插入错误:提供的值的列名或数量与表定义不匹配 如果我尝试 SELECT * FROM EXEC MyStoredProc 'param1', 'param2' 我得到的错误: 关键字'exec'附近的语法不正确。