c#中的DataSqlParamters是什么意思,怎么用的?谢谢了。
发布网友
发布时间:2022-04-10 13:01
我来回答
共4个回答
热心网友
时间:2022-04-10 14:30
楼上说得都很对,但是对于新手来说,等于没说。
我举个例子吧,现在有一个查询,要查出班上所有的女生的信息,在SQL里面的语句应该为:
SELECT * FROM myClass WHERE Gender='Female'
但是在WinForm或者ASP.NET中,性别这个条件往往是从控件获取的,比如把查询的条件放在一个TextBox里面,这里就假定是这种情况,一般人会这么写:
SELECT * FROM myClass WHERE Gender='" + txtGender.Text + "'
稍微好点的会这么写:
string Gender=txtGender.Text;
SELECT * FROM myClass WHERE Gender='"+ Gender +"'
但是这么写就会有遭到注入式攻击的危险,还有就是代码的可读性降低,可维护性较差,更重要的是,在三层架构的情况下,DALC与UI是分离的,对数据库的操作都在一个类里面完成,根本无法从UI上获取信息,所以以上的写法的局限性很大,接下来就可以引出你所期待的Parameters了,这是一个传参机制,即SQL语句中的变量(理解),上面一句可以写成:
...
cmd.CommandText="SELECT * FROM myClass WHERE Gender=@Gender";//一目了然
cmd.Parameters.AddWithValue("@Gender",Gender);//后面的Gender是一个字符串参数,一般情况下它是作为函数的参数出现的(如DALC中)
这样说,会不会更容易理解呢,答完收工
热心网友
时间:2022-04-10 15:48
SqlParameter就是sql语句里的参数,,
下面就是sql语句的两个参数@Opt,@ID
SqlParameter[] sqlParam = new SqlParameter[]{
new SqlParameter("@Opt","Select"),
new SqlParameter("@ID",UserID)
};
SQLDBManager.ExecProcereDT(strProcere, sqlParam);
/// <summary>
/// 执行存储过程,返回DataTable
/// </summary>
/// <param name="storedProcName">存储过程名称</param>
/// <param name="param">多参数</param>
/// <param name="tableName">表名</param>
/// <returns>DataTable</returns>
public static DataTable ExecProcereDT(string storedProcName, SqlParameter[] param)
{
using (SqlConnection sqlconn = new SqlConnection(connectionString))
{
DataTable dt = new DataTable();
SqlCommand sqlCmd = new SqlCommand(storedProcName, sqlconn);
sqlCmd.CommandType = CommandType.StoredProcere;
sqlCmd.Parameters.AddRange(param);
SqlDataAdapter sqlDA = new SqlDataAdapter(sqlCmd);
sqlDA.Fill(dt);
return dt;
}
}
热心网友
时间:2022-04-10 17:23
DataSqlParamters?
SqlParamter? sql语句的参数
热心网友
时间:2022-04-10 19:14
sql语句中用来传递参数的,多用在存储过程中
c#中的DataSqlParamters是什么意思,怎么用的?谢谢了。
更重要的是,在三层架构的情况下,DALC与UI是分离的,对数据库的操作都在一个类里面完成,根本无法从UI上获取信息,所以以上的写法的局限性很大,接下来就可以引出你所期待的Parameters了,这是一个传参机制,即SQL语句中的变量(理解),
C#中如何定义数据库操作类,并调用?
1,连接字符串:表示数据库是什么,密码是什么,用户名是什么2,查询,修改,添加,删除命令3,数据库函数调用4,得出结果给你一个例子如下 public bool Insert(Device.Transmitter transmitter) { string sql = "Insert Into Device (SerialNumber,Address,CommunicationModule,PhoneNumber,InitInfo) Values (@SerialNumber,@Ad...
c# 中 sqldatareader 和 sqldataadapter 、dateset的比较
SqlDataReader是个数据读取器,向前不可后退、每次只读取一条。速度快,现代项目里面用它用得最多。DataSet是个内存数据库,它与其它两个是根本不一样的。SqlDataAdapter是个数据适配器,工作于DataSet和数据库之间,负责将数据从数据源读出来放在DataSet中,或将DataSet中的更改更新回数据库。所以以上可以综...
ASP.NET 中 SqlParameter是什么?具体怎么用?
myDataAdapter->SelectCommand->Parameters->Add(S"@SerialNum", SqlDbType::Int)->Value = __box(239);myDataAdapter->Fill(myDataSet);}[JScript] 没有可用于 JScript 的示例。若要查看 Visual Basic、C# 或 C++ 示例,请单击页左上角的“语言筛选器”按钮 。要求命名空间: System.Data.SqlClient平台: Wi...
C#中commandType中集合Parameters怎么用,它里边的参数是什么意思
(1)System.Data.CommandType.Text表示要执行的是sql语句,比如:select * from table1 (2)System.Data.CommandType.StoredProcedure表示要执行的是存储过程,此 时,cmd.CommandText 的值应该是存储过程的名称。(3)System.Data.CommandType.TableDirect表示要执行的是表,此时,cmd.CommandText 的值应该是...
这段c#.net代码ExecuteReader返回的结果是什么?谢谢!!
两个datatable。DataReader的话 SqlDataReader sdr = cmd.ExecuteReader();if (sdr.HasRows){ while (sdr.Read()){ //读取第一个结果集 } if (sdr.NextResult()){ while (sdr.Read()){ //读取第二个结果集 } } //if (sdr.NextResult())可以继续读取多个结果集(如果有的话)} ...
如何使用C#建立响应微信接入和自动回复的代码
foreach (string s in OpenParameters) //OpenParameters 为4个参数名的数组,即 "signature","timestamp","nonce","echostr" { SqlParameter sp = comMpDb.Parameters.Add("@" + s, System.Data.SqlDbType.VarChar); if (context.Request.QueryString.AllKeys.Contains(s)) sp.Value = context.Request.Query...
如何用C#编程操作Windows系统服务
COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, [dt_Created] [datetime] NOT NULL) ON [PRIMARY]Windows服务样例下面就是我命名为MyService的Windows服务的所有源代码。大多数源代码是由Visual Studio自动生成的。using System;using System.Collections;using System.ComponentModel;using System.Data;using System...
c#中ExecuteReader是什么意思?怎么用?
ExecuteReader 返回一个DataReader对象:如果在SqlCommand对象中调用,则返回SqlDataReader;如果在OleDbCommand对象中调用,返回的是OleDbDataReader。可以调用DataReader的方法和属性迭代处理结果集。它是一个快速枚举数据库查询结果的机制,是只读、只进的。对SqlDataReader.Read的每次调用都会从结果集中返回一行。
怎么用C#语言实现读取EXCEL的表格结构,在把表格中的数据导入到数据库中...
/// <param name="Paramters">参数数组</param> /// <param name="Values">值数组</param> /// <returns>DataTable数据集</returns> public DataTable QueryDataTable(string ProcedureName, string[] Parameters, object[] Values) { OleDbCommand sc = new OleDbCommand(); sc.Connection = this._connect...