C# 使用OLEDB连接Excel注意事项

本文详细介绍了在Microsoft .NET Framework的SQL Server数据提供程序中如何使用SQL参数,包括使用@符号标识参数的方法,并对比了OLEDB.NET数据提供程序中使用?作为参数占位符的不同之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


     在使用Microsoft .NET Framework的SQL Server数据提供程序中,sql语句中使用参数的方式和直接在sqlserver读写工具中使用方式是一致的,即是@parameter的形式。

代码如下:

//数据库连接对象conn
SqlCommand cmd = new SqlCommand();
//设置参数值
object value = null;
//注意这里语句中参数的构建方式:@...
string sql = string.Format("select * from {0} where a=@a and b=@b","T");
cmd.Parameters.Add(new SqlParameter[]{new SqlPatameter("b",bvalue),new SqlParameter("a",avalue});
cmd.CommandType=CommandType.Text;
cmd.CommandText = sql;
cmd.Connection = conn;
//查询数据
//....................

     从上面的示例代码中可以看出,sqlserver的参数构造以"@"开头,加上参数名,而在参数赋值语句中,可以不用去考虑sql语句中参数的顺序,参数的值由参数名来确定。

     但是在Microsoft .NET Framework的OLE DB .NET数据提供程序中,不支持将参数传递给 OleDbCommand 调用的 SQL 语句或存储过程的命名参数。如果使用命名参数,framwork编译是没有问题的,代码执行也不会报错,但是sql语句的执行结果就不是想要的结果了。

     在Microsoft .NET Framework的OLE DB .NET数据提供程序中,程序支持以“?”代替参数,参数赋值代码中,按照参数顺序确定每个"?"对应的参数值。

string sql = string.Format(@"update [{0}$] set [{1}]=? where [{1}]=?", tname, item.ColumnName);
cmd.CommandText = sql;
cmd.Parameters.Add(new OleDbParameter("value",newString));
cmd.Parameters.Add(new OleDbParameter("option", oldString));
cmd.ExecuteNonQuery();

    

    注意:在使用Microsoft .NET Framework的SQL Server数据提供程序中是不支持使用"?"代替参数的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值