求代码 SqlParameter用法和实例

yaokai0405 2008-10-24 02:44:44
RT
...全文
5486 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingfeidiewu 2011-11-05
  • 打赏
  • 举报
回复
我有这样的存储过程
ALTER procedure [dbo].[RegisterThisp]
(
@xh char(10),
@xm char(20),
@qsh char(10),
@wpdcsj datetime,
@gzwp varchar(50)
)
as
insert into GZWPDC(xh,xm,qsh,wpdcsj,gzwp) VALUES(@xh,@xm,@qsh,@wpdcsj,@gzwp)
那在.NET中我想通过文本框控件输入数据,这些输入的数据通过单击确定按钮就可以把这些数据存入SQL表中
那在.NET中如何写代码
mxp999999 2010-03-31
  • 打赏
  • 举报
回复
public DataSet getDataSet(string pSql, bool pIsPro, params SqlParameter[] paramenters)
{
DataSet ds = new DataSet();
if (isConnect())
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = mConn;
cmd.CommandText = pSql;
cmd.CommandTimeout = 0;
if (paramenters != null)
{
foreach (SqlParameter parm in paramenters)
cmd.Parameters.Add(parm);
}
if (pIsPro)
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter ada = new SqlDataAdapter();
ada.SelectCommand = cmd;
ada.Fill(ds);

cmd.Dispose();
ada.Dispose();
}
catch
{

}


}
return ds;
}
mxp999999 2010-03-31
  • 打赏
  • 举报
回复
public DataSet getDataSet(string pSql, bool pIsPro, params SqlParameter[] paramenters)
{
DataSet ds = new DataSet();
if (isConnect())
{
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = mConn;
cmd.CommandText = pSql;
cmd.CommandTimeout = 0;
if (paramenters != null)
{
foreach (SqlParameter parm in paramenters)
cmd.Parameters.Add(parm);
}
if (pIsPro)
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter ada = new SqlDataAdapter();
ada.SelectCommand = cmd;
ada.Fill(ds);

cmd.Dispose();
ada.Dispose();
}
catch
{

}


}
return ds;
}
jjcl521 2008-10-24
  • 打赏
  • 举报
回复
高手看 DbParameter的用法呢
fffff_1982 2008-10-24
  • 打赏
  • 举报
回复
type 是变量,整型
comm.Parameters.Add("@type",System.Data.SqlDbType.Int,4);

comm.Parameters["@type"].Value=Type;
yaokai0405 2008-10-24
  • 打赏
  • 举报
回复
ding
ding_ys 2008-10-24
  • 打赏
  • 举报
回复
强烈推荐SqlHelper
周公 2008-10-24
  • 打赏
  • 举报
回复
参数化SQL语句
在前面的系列文章《asp.net夜话之三:表单和控件》中我提到了SQL注入的问题,避免SQL注入的方法有两种:一是所有的SQL语句都存放在存储过程中,这样不但可以避免SQL注入,还能提高一些性能,并且存储过程可以由专门的数据库管理员(DBA)编写和集中管理(这种做法我在一些公司见过),不过这种做法有时候针对相同的几个表有不同条件的查询,SQL语句可能不同,这样就会编写大量的存储过程,所以有人提出了第二种方案:参数化SQL语句。例如我们在本篇中创建的表UserInfo中查找所有女性用户,那么通常情况下我们的SQL语句可能是这样:


select * from UserInfo where sex=0
在参数化SQL语句中我们将数值以参数化的形式提供,对于上面的查询,我们用参数化SQL语句表示为:



select * from UserInfo where sex=@sex
我们再对代码中对这个SQL语句中的参数进行赋值,假如我们要查找UserInfo表中所有年龄大于30岁的男性用户,这个参数化SQL语句可以这么写:


select * from UserInfo where sex=@sex and age>@age
下面是执行这个查询并且将查询结果集以DataTable的方式返回的代码:

//实例化Connection对象 
SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa");
//实例化Command对象
SqlCommand command = new SqlCommand("select * from UserInfo where sex=@sex and age>@age", connection);
//第一种添加查询参数的例子
command.Parameters.AddWithValue("@sex", true);
//第二种添加查询参数的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbType.Int);//注意UserInfo表里age字段是int类型的
parameter.Value = 30;
command.Parameters.Add(parameter);//添加参数

//实例化DataAdapter
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataTable data = new DataTable();
周公 2008-10-24
  • 打赏
  • 举报
回复
Asp.net夜话之七:ADO.NET介绍
ADO.NET是对Microsoft ActiveX Data Objects (ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。以前做数据库访问的时候,需要一直与数据库保持连接,直到获取完所有满足需要的数据之后才会断开数据库连接,这种数据库访问方式称之为连接式数据访问技术。相比于以前的连接式数据访问技术,ADO.NET除了提供连接式数据访问技术之外,还提供了另一种断开式解决方案,那就是在内存中模拟一个数据库,也就是内存中的数据库。我们知道在实际的数据库技术中,每个数据库就是一个业务逻辑单元,一般来说这个数据库包含了实现一个应用软件或者一个网站所需要的全部数据。
http://blog.csdn.net/zhoufoxcn/archive/2008/10/13/3066799.aspx

里面讲述了如何使用SQL参数。
ScottSun 2008-10-24
  • 打赏
  • 举报
回复
建议LZ这个看一下就行了,实用中还是去下载个微软出的sqlHelper类,很好用,很强大!
扎德 2008-10-24
  • 打赏
  • 举报
回复
string sqlcom = "select * from test where id =@id and name = @name";
SqlDataAdapter sqldataadapter = new SqlDataAdapter();
sqldataadapter.SelectCommand = sqlCmd;
SqlParameter para2 = new SqlParameter("id", SqlDbType.VarChar, 10);
para2.Value = "1";
SqlParameter para3 = new SqlParameter("name", "1");
SqlParameter[] para = { para2, para3 };
foreach (SqlParameter te in para)
{
sqldataadapter.SelectCommand.Parameters.Add(te);
}
yaokai0405 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tangserver 的回复:]
SqlParameter[] para = new SqlParameter[2];
para[0]=new SqlParameter("数据库字段名字",对应程序中得控件值);
para[1]=new SqlParameter("数据库字段名字",对应程序中得控件值);
[/Quote]简单了点吧
szh3210 2008-10-24
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20081021/14/a3bfecc4-453d-451d-b9eb-8b0d6e01a0ef.html
yaokai0405 2008-10-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tangserver 的回复:]
SqlParameter[] para = new SqlParameter[2];
para[0]=new SqlParameter("数据库字段名字",对应程序中得控件值);
para[1]=new SqlParameter("数据库字段名字",对应程序中得控件值);
[/Quote]简单了点吧
mengxj85 2008-10-24
  • 打赏
  • 举报
回复
顶,没用过,百度一下应该会有吧
tangserver 2008-10-24
  • 打赏
  • 举报
回复
SqlParameter[] para = new SqlParameter[2];
para[0]=new SqlParameter("数据库字段名字",对应程序中得控件值);
para[1]=new SqlParameter("数据库字段名字",对应程序中得控件值);

62,067

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧