昨天的问题已解决了 现在又有问题了:
我在asp页面的代码上用Struct传参数,我定义了9个参数全部用string 型的.我的数据库里有9个字段其中3个字段是int型的为空.我想在页面上不输入值,已要这个插入语句能执行成功???可问题出来了,如下:
这是asp页面的:
private void btnSubmit_Click(object sender, System.EventArgs e)
{
string username=this.txtUsername.Text.Trim();
string pwd=this.txtPwd.Text.Trim();
string email=this.txtEmail.Text.Trim();
string name=this.txtName.Text.Trim();
string oftenno=this.txtHandsetNo.Text.Trim();
string qqno=this.txtQQNumber.Text.Trim();
string handsetno=this.txtHandsetNumber.Text.Trim();
string postalcode=this.txtPostalcode.Text.Trim();
string address=this.txtAddress.Text.Trim();
DataAccess da=new DataAccess();
da.getRegister(username,pwd,email,name,oftenno,qqno,handsetno,postalcode,address);
}
}这下面的是DataAccess类中getRegister方法代码:
public class DataAccess
{
private SqlConnection conn;
private SqlCommand cmd; public DataAccess()
{
Connect cn=new Connect();
this.conn=cn.getConnect();
}
//public bool getRegister(RegisterParamter parm)
public bool getRegister(string username,string pwd,string email,string name,string oftenno,string qqno,string handno,string post,string addr)
{
this.conn.Open();
string strsql="insert into UserName,PassWord,Email,ContactName,OftenNo,QQNo,HandsetNo,Postalcode,Address UserInfo values ('"+
username+"','"+pwd+"','"+email+"','"+name+"',"+oftenno+","+qqno+","+handno+","+post+",'"+addr+"')";
// string strsql="insert into UserInfo values ('"+parm._username+"','"+parm._pwd+"','"+parm._email+"','"+parm._name+"',"+
// parm._oftenno+","+parm._qqno+","+parm._handsetno+","+parm._postalcode+",'"+parm._address+"')";
try
{
this.cmd=new SqlCommand(strsql,this.conn);
this.cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
throw new Exception(ex.ToString());
}
finally
{
this.conn.Close();
}
return true;
}
}
上面的代码执行到this.cmd.ExecuteNonQuery()的时候就提示错误了,如下:
System.Data.SqlClient.SqlException: 第 1 行: ',' 附近有语法错误。 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Registration.DataAccess.getRegister(String username, String pwd, String email, String name, String oftenno, String qqno, String handno, String post, String addr) in e:\注册页面\registration\dataaccess.cs:line 44
我在asp页面的代码上用Struct传参数,我定义了9个参数全部用string 型的.我的数据库里有9个字段其中3个字段是int型的为空.我想在页面上不输入值,已要这个插入语句能执行成功???可问题出来了,如下:
这是asp页面的:
private void btnSubmit_Click(object sender, System.EventArgs e)
{
string username=this.txtUsername.Text.Trim();
string pwd=this.txtPwd.Text.Trim();
string email=this.txtEmail.Text.Trim();
string name=this.txtName.Text.Trim();
string oftenno=this.txtHandsetNo.Text.Trim();
string qqno=this.txtQQNumber.Text.Trim();
string handsetno=this.txtHandsetNumber.Text.Trim();
string postalcode=this.txtPostalcode.Text.Trim();
string address=this.txtAddress.Text.Trim();
DataAccess da=new DataAccess();
da.getRegister(username,pwd,email,name,oftenno,qqno,handsetno,postalcode,address);
}
}这下面的是DataAccess类中getRegister方法代码:
public class DataAccess
{
private SqlConnection conn;
private SqlCommand cmd; public DataAccess()
{
Connect cn=new Connect();
this.conn=cn.getConnect();
}
//public bool getRegister(RegisterParamter parm)
public bool getRegister(string username,string pwd,string email,string name,string oftenno,string qqno,string handno,string post,string addr)
{
this.conn.Open();
string strsql="insert into UserName,PassWord,Email,ContactName,OftenNo,QQNo,HandsetNo,Postalcode,Address UserInfo values ('"+
username+"','"+pwd+"','"+email+"','"+name+"',"+oftenno+","+qqno+","+handno+","+post+",'"+addr+"')";
// string strsql="insert into UserInfo values ('"+parm._username+"','"+parm._pwd+"','"+parm._email+"','"+parm._name+"',"+
// parm._oftenno+","+parm._qqno+","+parm._handsetno+","+parm._postalcode+",'"+parm._address+"')";
try
{
this.cmd=new SqlCommand(strsql,this.conn);
this.cmd.ExecuteNonQuery();
}
catch(SqlException ex)
{
throw new Exception(ex.ToString());
}
finally
{
this.conn.Close();
}
return true;
}
}
上面的代码执行到this.cmd.ExecuteNonQuery()的时候就提示错误了,如下:
System.Data.SqlClient.SqlException: 第 1 行: ',' 附近有语法错误。 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Registration.DataAccess.getRegister(String username, String pwd, String email, String name, String oftenno, String qqno, String handno, String post, String addr) in e:\注册页面\registration\dataaccess.cs:line 44
--------------------
int型的为空?到底是它的约束null or not null?还是它的值为空?我想在页面上不输入值,已要这个插入语句能执行成功???
----------------------------
如果不是我昨晚没睡好的话,那么楼主你的中文得好好复习下了。。
这样的问题叫人怎么答啊?
string pwd=this.txtPwd.Text.Trim();
string email=this.txtEmail.Text.Trim();
string name=this.txtName.Text.Trim();
string oftenno=this.txtHandsetNo.Text.Trim();//--修改成 int oftenno = Convert.ToInt32(this.txtHandsetNo.Text.Trim())
string qqno=this.txtQQNumber.Text.Trim();//--修改成 int qqno = Convert.ToInt32(this.txtQQNumber.Text.Trim())
string handsetno=this.txtHandsetNumber.Text.Trim();//修改成--int handsetno = Convert.ToInt32(this.txtHandsetNumber.Text.Trim());
string postalcode=this.txtPostalcode.Text.Trim();
string address=this.txtAddress.Text.Trim();然后://这是你的原方法:
public bool getRegister(string username,string pwd,string email,string name,string oftenno,string qqno,string handno,string post,string addr)这是你的原方法//修改成:
public bool getRegister(string username,string pwd,string email,string name,int oftenno,int qqno,int handno,stirng post,string addr)你试试看,不知道你能不能明白我的意思