标题:类操作数据库,要求声名变量
只看楼主
fsx
Rank: 1
来 自:广西南宁
等 级:新手上路
帖 子:278
专家分:0
注 册:2005-11-9
结帖率:100%
 问题点数:0 回复次数:4 
类操作数据库,要求声名变量

运行时提示@a1必需声名。
请各位帮看看错在哪里,如果不是这样写,那应该如何用类和"@变量"来操作呢?谢谢了!!!
有两个类文件件,分别为Classconnection.cs、Classcommand.cs和一个index.aspx文件,其中index.aspx有三个textbox和一个button控件。
代码如下:
Classconnection.cs中的代码如下
//////////////////////////////////
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Classconnection 的摘要说明
/// </summary>
public class Classconnection
{
protected IDbConnection dbconn;
public string dataType;
public Classconnection()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public IDbConnection dbconnection()
{
switch(dataType)
{
case "SQL":
dbconn = new System.Data.SqlClient.SqlConnection("server=localhost;uid=sa;pwd=sa;database=fsxdata");
break;
case "OLEDB":
dbconn =new System.Data.OleDb.OleDbConnection("");
break;
}
return dbconn;
}
}

Classcommand.cs的代码如下
///////////////////////////////
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// Classcommand 的摘要说明
/// </summary>
public class Classcommand
{
private IDbConnection dbconnect;
public IDbCommand dbcommand;
private IDataReader dbRead;
Classconnection dbconns = new Classconnection();
public Classcommand()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public void dbopen(string str)
{
dbconns.dataType = str;
dbconnect = dbconns.dbconnection();
dbconnect.Open();
dbcommand = dbconnect.CreateCommand();
}

public void dbclose()
{
dbcommand.Dispose();
dbconnect.Close();
dbconnect.Dispose();
}

public int dbinsert(string ss)
{
dbcommand.CommandText = ss;
return dbcommand.ExecuteNonQuery();
}
}


index.aspx的代码如下
///////////////////////////
protected void Button1_Click(object sender, EventArgs e)
{
Classcommand cmd = new Classcommand();
cmd.dbopen("SQL");
cmd.dbinsert("insert into dd(fsx1,fsx2,fsx3) values(@a1,@a2,@a3)");
cmd.dbcommand.Parameters.Add(new SqlParameter("@a1",SqlDbType.Char,10));
cmd.dbcommand.Parameters["@a1"].value= TextBox1.Text;
cmd.dbcommand.Parameters.Add(new SqlParameter("@a2", SqlDbType.Char, 10));
cmd.dbcommand.Parameters["@a2"].value = TextBox2.Text;
cmd.dbcommand.Parameters.Add(new SqlParameter("@a3", SqlDbType.Char, 10));
cmd.dbcommand.Parameters["@a3"].value = TextBox3.Text;
cmd.dbclose();

Response.Write("<script>alert('添加成功!');</script>");
}

搜索更多相关主题的帖子: 数据库 变量 声名 
2007-09-13 18:11
mlrh3838
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:0
注 册:2007-6-14
得分:0 
cmd.dbcommand.Parameters.Add(new SqlParameter("@a1",SqlDbType.Char,10));
cmd.dbcommand.Parameters["@a1"].value= TextBox1.Text;
dbcommand 是什么

这样就行了
cmd.Parameters.Add("@a1", SqlDbType.Char);
cmd.Parameters["@a1"].Value = TextBox1.Text;

我一般都这样写
cmd.Parameters.Add("@a1", SqlDbType.Char).Value = TextBox1.Text;

[此贴子已经被作者于2007-9-13 18:45:25编辑过]


2007-09-13 18:42
fsx
Rank: 1
来 自:广西南宁
等 级:新手上路
帖 子:278
专家分:0
注 册:2005-11-9
得分:0 
dbcommand这个是Classcommand类中定义的IDBcommand变量。如果不能这样写,那怎么写呢?我的思路是这样的,连接数据库和对数据的操作都在类中实现。当用到时直接引用类,赋值就可以了。关键是在引用时不懂用参数形式操作,如在程序中的"@a1"。请大家指点一下。

做你喜欢做的事
2007-09-13 21:46
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
那个你不用管它的,你只是往TextBox1.Text填数据就行了.
@a1 就好像int a1一样,只是定义一个变量来存储一些数据而已

飘过~~
2007-09-14 11:14
fsx
Rank: 1
来 自:广西南宁
等 级:新手上路
帖 子:278
专家分:0
注 册:2005-11-9
得分:0 

就写个简单点的吧,如下:
类class1中
private SqlataReader dbread;
private SqlCommand dbcomm;
public SqlDataReader dr(string str,这里还应该有参数吗?)//方法
{ SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pw=;database=XX");
dbcomm=(str,conn);
dbread = dbcomm.ExecuteReader();
return dbread;
}
然后在index.aspx中调用(在该页中有两个textbox和一个button控件)目的是验证用户名(textbox1)和密码(textbox2)
protected void Button2_Click(object sender, EventArgs e)
{
请问这里的代码应该如何写?要求用参数形式"@变量名"
}

如果直接传textbox容易啊。现在关键我是想用参数传值的方法。请给方法或例子也行,在这谢谢了!

[此贴子已经被作者于2007-9-16 2:50:46编辑过]


做你喜欢做的事
2007-09-16 02:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-169736-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091123 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved