昨天的问题已解决了  现在又有问题了:
我在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

解决方案 »

  1.   

    好象是strsql有错误,你把strsql打印到控制台上,看看语句。看不出来,就去手动执行一下。
      

  2.   

    我的数据库里有9个字段其中3个字段是int型的为空.
    --------------------
    int型的为空?到底是它的约束null or not null?还是它的值为空?我想在页面上不输入值,已要这个插入语句能执行成功???
    ----------------------------
    如果不是我昨晚没睡好的话,那么楼主你的中文得好好复习下了。。
    这样的问题叫人怎么答啊?
      

  3.   

    你传的参数,其中有三个数据库字段的数据是Int型 的,所以你在传参数的时候要转成Int型 的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();//--修改成 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)你试试看,不知道你能不能明白我的意思