Tag: 存储过程

将参数传递给C#中的存储过程

我有一个存储过程,它返回一个变量@result设置为1或0(数据类型位)。 我使用以下代码在C#中访问它。 它抛出错误说太多参数。 protected void btnRegister_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[“ConnectionString”]); con.Open(); SqlCommand Cmd = new SqlCommand(“usp_CheckEmailMobile”, con); Cmd.CommandType = CommandType.StoredProcedure; Cmd.CommandText = “Registration”; Cmd.Parameters.AddWithValue(“@Name”, txtName.Text); Cmd.Parameters.AddWithValue(“@Email”, txtEmailAddress.Text); Cmd.Parameters.AddWithValue(“@Password”, txtPassword.Text); Cmd.Parameters.AddWithValue(“@CountryCode”, ddlCountryCode.Text); Cmd.Parameters.AddWithValue(“@Mobile”, txtMobileNumber.Text); //Cmd.Parameters.Add(“@Result”, DbType.Boolean); SqlParameter sqlParam = new SqlParameter(“@Result”, DbType.Boolean); //sqlParam.ParameterName = “@Result”; //sqlParam.DbType = DbType.Boolean; sqlParam.Direction = ParameterDirection.Output; […]

从存储过程返回多个表

在我的winform应用程序中,我有以下场景: 我想在一个事件上获得多个表。 在single server cycle,中将所有表作为dataset返回single server cycle,或者每次获取一个表并separate server cycle for each table使用separate server cycle for each table哪一个更好? 一个又一个有什么优势?

动态/编程地向SQL添加WHERE子句

如何以编程方式将搜索条件添加到SQL存储过程? 在我的应用程序(C#)中我正在使用存储过程(SQL Server 2008R2) ALTER PROCEDURE [dbo].[PROC001] @userID varchar(20), @password varchar(20) AS SELECT * FROM tUsers WHERE RTRIM(Name) = @userID AND RTRIM(Password) = @password 我希望通过更多条件扩展此查询,现在我不知道有多少条件将使用此查询,因为程序执行… 2,3,6或20.我想以编程方式添加这些条件,如: SELECT * FROM tUsers WHERE RTRIM(Name) = @userID AND RTRIM(Password) = @password AND Field2 = ‘1’ AND Field3 = ‘0’ OR Field4 ‘8’ AND Field5 < '100' …. 是否可以动态地向存储过程发送条件?

如何将XML从C#传递到SQL Server 2008中的存储过程?

我想将xml文件传递给sql server存储过程,如下所示: CREATE PROCEDURE BookDetails_Insert (@xml xml) 我想比较一些字段数据与其他表数据,如果匹配,则必须将记录插入到表中。 要求: 如何将XML传递给存储过程? 我试过这个,但它不起作用: [工作] command.Parameters.Add( new SqlParameter(“@xml”, SqlDbType.Xml) { Value = new SqlXml(new XmlTextReader(xmlToSave.InnerXml, XmlNodeType.Document, null)) }); 如何访问存储过程中的XML数据? 编辑: [工作] String sql = “BookDetails_Insert”; XmlDocument xmlToSave = new XmlDocument(); xmlToSave.Load(“C:\\Documents and Settings\\Desktop\\XML_Report\\Books_1.xml”); SqlConnection sqlCon = new SqlConnection(“…”); using (DbCommand command = sqlCon.CreateCommand()) { **command.CommandType = CommandType.StoredProcedure;** command.CommandText […]

entity framework – 存储过程返回值

我试图获取存储过程的返回值。 以下是此类存储过程的示例: select Name, IsEnabled from dbo.something where ID = @ID if @@rowcount = 0 return 1 return 这是一个简单的选择。 如果找到0行,我的结果集将为null,但我仍然会有一个返回值。 这是一个不好的例子,因为这是一个选择,所以我确定我能找到是否返回了0行。 但是,在插入,删除或其他调用中,我们需要此返回值来了解是否存在问题。 我一直无法找到获得此返回值的方法。 我可以得到输出值,我可以得到结果集,但没有返回值。 如果我手动调用SQL,或者即使我使用entity framework运行SqlCommand ,我也可以获得返回值,但这不是我想要做的。 有没有人能够使用Entity Framework从存储过程中获取返回值? 谢谢您的帮助!

什么是传递参数到SQL,为什么我需要它?

初学者: 在我对如何将数据插入SQL Server的问题的答案中 ,他提到了传递参数而不是像我现在所拥有的字符串连接。 这对安全来说真的有必要吗? 如果是这样,究竟是什么传递参数? 当我谷歌它,我得到了很多关于存储过程。 这就是我想要的,我不知道存储过程…. 如果你能指出我正确的方向,我将不胜感激。 谢谢。 编辑: 好的,这就是我得到的。 它似乎正确地更新了数据库,最终我将硬编码的int更改为标签的输入。 请确认我是如何做到这一点不容易受到任何SQL注入或攻击。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Security; using System.Data; using System.Data.Sql; using System.Data.SqlClient; public partial class Stats : System.Web.UI.Page { public SqlDataReader DataReader; public SqlCommand Command; string queryString = (“INSERT INTO UserData (UserProfileID, ConfidenceLevel, […]