聊天室是什么意思:.net (c#) sql数据库添加问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 07:17:44
小弟今日编数据库程序,遇到如下问题,我想往表内添加数据,但是运行后,不给我报错也添加不成功,代码入下.忘高手指点

这个是我写的类。

public static bool insertreport(dbreport p)
{
SqlConnection con=dbreport.createCon();
con.Open();
SqlCommand cmd=new SqlCommand("insert into report values(@Report,@Username,@Question,@Answer)",con);
SqlParameter para=new SqlParameter("@Report",SqlDbType.Int,4);
para.Value=p.Report;
cmd.Parameters.Add(para);
para=new SqlParameter("@Username",SqlDbType.VarChar,20);
para.Value=p.Username;
cmd.Parameters.Add(para);
para=new SqlParameter("@Question",SqlDbType.VarChar,500);
para.Value=p.Question;
cmd.Parameters.Add(para);
para=new SqlParameter("@Answer",SqlDbType.VarChar,500);
para.Value=p.Answer;
cmd.Parameters.Add(para);
cmd.ExecuteNonQuery();
return true;
}

应用代码:
private void Button1_Click(object sender, System.EventArgs e)
{
string Username=Request.QueryString["Username"].ToString();
dbreport p=new dbreport();
p.Username=Username;
p.Answer=this.TextBox1.Text.Trim();

Response.Redirect("Ureportmain.aspx?Username="+Username);
}
还要调用我写的那个insertreport方法嘛? 我以为是自动调用的呀
请问调用语法应该怎么写?

我加上dbreport.insertreport(p);
但是出现错误(出现变化我还是挺高兴的),但是问题我搞不明白,报如下错:
被准备语句 '(@Report int,@Username varchar(20),@Question varchar(500),@Answe' 需要参数 @Report,但未提供该参数。

如果insertreport和 Button1_Click在同一个类中
请在在Response.Redirect("Ureportmain.aspx?Username="+Username); 前加一句
insertreport(p);

如果insertreport和 Button1_Click不在同一个类中,
假设
insertreport()在CassA中;
请增加一句
CassA.insertreport(p);

调用过这个方法没:insertreport()

string query = "insert into userinfo(username,nickname,password,email,major) values ( @username,@nickname,@password,@email,@major)";
string strConn = "uid=sa;pwd=;database=tu;server=";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = query;
cmd.Connection = conn;
SqlParameter sp1 = new SqlParameter("@username", SqlDbType.Char, 255);
sp1.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp1);
SqlParameter sp2 = new SqlParameter("@nickname", SqlDbType.Char, 255);
sp2.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp2);
SqlParameter sp3 = new SqlParameter("@password", SqlDbType.Char, 255);
sp3.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp3);
SqlParameter sp4 = new SqlParameter("@email", SqlDbType.Char, 255);
sp4.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp4);
SqlParameter sp5 = new SqlParameter("@major", SqlDbType.Char, 255);
sp5.Direction = ParameterDirection.Input;
cmd.Parameters.Add(sp5);
sp1.Value = username;
sp2.Value = nickname;
sp3.Value = password;
sp4.Value = email;
sp5.Value = major;
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
if (ee != null)
errstr = ee.Message;
}
cmd.Dispose();
conn.Close();
我的成功代码
你比我好像少了一句
sp4.Direction = ParameterDirection.Input;
你加上这一句试一试

大哥,当然调用你的添加数据的insertreport() ,并且要那参数传过去啊

谢谢啊~