草庐IT

SqlParameter

全部标签

c# - 在 ASP.Net Web 应用程序数据层中实现静态方法是否安全?

我正在开发一个Web应用程序,它是一个B2B门户应用程序。我的应用程序遵循2层架构。下面是一段代码,将公司注册到我的网站//////RegisterCompanywiththebusinessbazaar/////////publicstaticboolRegisterCompany(Registrationregistration){boolresult;using(varhelper=newDbHelper()){_commandText="sp_RegisterCompany";varsuccess=newSqlParameter("@Success",SqlDbType.Bit

c# - SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 DBNull 对象

当我将SQL参数p添加到集合中时,我得到一个InvalidCastException,其中包含帖子标题中的消息。parentId是一个可以为空的整数,在数据库中也是一个可以为空的整数。为什么会出现这个异常,我该如何解决?我不使用存储过程,我已经阅读过类似的主题,但它们对我没有帮助。varp=newSqlParameter("ParentId",SqlDbType.Int).Value=parentId??(object)DBNull.Value;cmd.Parameters.Add(p); 最佳答案 您没有添加新的SqlParame

c# - 处理 DBNull.Value

我经常需要处理连接到网格控件的数据表,自定义更新似乎总是会产生大量与DBNull.Value相关的代码。我在这里看到了类似的问题,但认为一定有更好的答案:WhatisthebestwaytodealwithDBNull's我发现我倾向于将我的数据库更新封装在方法中,所以我最终得到如下代码,我将DBNull.value移动到可为null的类型,然后返回以进行更新:privatevoidUpdateRowEventHandler(objectsender,EventArgse){Boolean?requiresSupport=null;if(grdMainLevel1.GetFocused

c# - Entity Framework 中 .SqlQuery() 方法的 params 参数是什么?

该方法采用一个字符串作为查询,并采用一个Object[]数组作为参数,大概是为了避免SQL注入(inject)。然而,世界上没有任何地方记录了应该将什么放入对象数组。关于SO的另一个问题提出了完全相同的问题,但接受的答案不起作用:WhenusingDbSet.SqlQuery(),howtousenamedparameters?我已经尝试了所有我能想到的参数替换形式,但它们都抛出了异常。有什么想法吗?它会不会像这样简单:SqlQuery("SELECT*FROM@table","Users")编辑:这是我尝试过的一些事情(异常是SqlException):varresult=conte

c# - EntityFramework 过程或函数 '' 需要参数 '',但未提供

我很抱歉问了一个基本问题,但是我找不到这个错误的原因。我正在使用EntityFramework执行存储过程,我传递了四个参数,但是SQL数据库似乎拒绝了它们。谁能指出我正确的方向?我的代码:ObjectResultresultList=container.ExecuteStoreQuery("SearchDirectoryEntries",newSqlParameter("@DirectoryId",search.DirectoryId),newSqlParameter("@Latitude",point.Latitude),newSqlParameter("@Longitude",p

c# - 不存在从对象类型 System.Web.UI.WebControls.TextBox 到已知托管提供程序 native 类型的映射

这是我的代码SqlCommandcmd=newSqlCommand("spRegisterUser",con);cmd.CommandType=CommandType.StoredProcedure;SqlParameterusername=newSqlParameter("@UserName",txtUserName.Text);SqlParameterpassword=newSqlParameter("@Password",txtPassword);SqlParameteremail=newSqlParameter("@Email",txtEmail.Text);SqlParame

c# - 奇怪的 C# 编译器行为(重载解析)

我发现以下代码的C#编译器行为非常奇怪:varp1=newSqlParameter("@p",Convert.ToInt32(1));varp2=newSqlParameter("@p",1);Assert.AreEqual(p1.Value,p2.Value);//PASSvarx=0;p1=newSqlParameter("@p",Convert.ToInt32(x));p2=newSqlParameter("@p",x);Assert.AreEqual(p1.Value,p2.Value);//PASSp1=newSqlParameter("@p",Convert.ToInt32

c# - 将 DBNull.Value 和空文本框值传递给数据库

这个问题在这里已经有了答案:HowdoIParameterizeanullstringwithDBNull.Valueclearlyandquickly(8个答案)关闭8年前。我的页面上有一些文本框可以为空,因为它们是可选的,而且我有这个DAL代码parameters.Add(newSqlParameter("@FirstName",FirstName));parameters.Add(newSqlParameter("@LastName",LastName));parameters.Add(newSqlParameter("@DisplayName",DisplayName));pa

c# - 使用 SqlParameter 创建 Order By 子句

我试图将我对SQL语句中变量的所有引用移动到SqlParameter类,但是由于某种原因,此查询失败。stringorderBy=Request.QueryString["OrderBy"];//Fixupthegetvarsif(orderBy==null)orderBy="nameASC";stringselectCommand="SELECTcat_idASid,cat_nameASnameFROMtable_nameORDERBY@OrderBy";SqlCommandcmd=newSqlCommand(selectCommand,dataConnection);cmd.Par

c# - SqlParameter C# 上的表名和表字段?

我想知道如何在C#上通过SqlCommand传递表名和表字段名。尝试通过将SqlCommand设置为@符号来按照它完成的方式进行操作,但没有成功。有什么想法吗?? 最佳答案 如果您担心SQL注入(inject),SqlCommandBuilder类(和其他DB特定版本的DbCommandBuilder)有一个名为QuoteIdentifier的函数,可以正确转义您的表名。varbuilder=newSqlCommandBuilder();stringescTableName=builder.QuoteIdentifier(table