关于ASP.NET与数据库连接的问题
本人在做一个添加学生信息的网页,在页面中有需要添加的学生信息项目,然后点击保存之后连接到数据库进行保存。但是现在有个问题就是一直没办法将数据保存到数据库中,即是每次都显示“设置失败”,而数据库中的信息却可以读取到网页中来。
烦请各位好心帮忙解决一二~
下面是涉及到的部分前台代码:
<tr>
<td align="right" valign="top">
<a style="text-decoration:none;" href="#" onclick="window.open('addstuInfo.aspx?stuBarCode=add','','width=340,height=371');">添加学生信息</a>
</td>
</tr>
<tr>
<td valign="top">
<asp:GridView ID="gvstuInfo" runat="server" AutoGenerateColumns="False" Width="818px" AllowPaging="True" OnRowDeleting="gvstuInfo_RowDeleting">
<Columns>
<asp:BoundField HeaderText="学生姓名" DataField="stuName" />
<asp:BoundField HeaderText="学生性别" DataField="sex" />
<asp:BoundField HeaderText="学生类型" DataField="type" />
<asp:BoundField HeaderText="证件类型" DataField="certificateType" />
<asp:BoundField HeaderText="证件号码" DataField="certificate" />
<asp:BoundField HeaderText="联系电话" DataField="tel" />
<asp:BoundField DataField="email" HeaderText="E-mail" />
<asp:BoundField HeaderText="备注" DataField="remark" />
<asp:TemplateField HeaderText="修改">
<ItemTemplate>
<a href="#" style="text-decoration:none;" onclick="window.open('addstuInfo.aspx?stuBarCode=<%#Eval("stuBarCode") %>','','width=340,height=371')">修改</a>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" >
<ControlStyle Font-Underline="False" />
</asp:CommandField>
</Columns>
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" />
<PagerStyle BackColor="#ABCEEB" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#ABCEEB" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<br />
</td>
</tr>
下面是后台代码:
public partial class stuManage_addstuInfo : System.Web.UI.Page
{
string barcode = "";
protected void Page_Load(object sender, EventArgs e)
{
barcode = Request.QueryString["stuBarCode"].ToString(); //获取对学生操作的方式
if (!IsPostBack) //判断是否是首次加载
{
bindDdlstuType();
//自定义方法绑定
if (barcode != "add") //判断是否是添加操作
{
this.Title = "修改学生信息";
txtPass.Enabled = false;
bindstuInfo();
}
else
{
this.Title = "添加学生信息";
this.txtstuBarCode.Text = bindBarcode();
}
}
}
public string bindBarcode()
{
//获取当前日期的年,月,日转换成字符串类型用于表示条形码
string date = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
//获取当前时间的小时,分钟转换成字符串类型用于表示条形码
string time = DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
return date + time; //返回一个10位的条形码
}
protected void btnSave_Click(object sender, EventArgs e)
{
string sBarcode = txtstuBarCode.Text;
string sPass = txtPass.Text;
string sName = txtstuName.Text;
string Sex = "";
if (radbtnMan.Checked)
{
Sex = "男";
}
else
{
Sex = "女";
}
string sType = ddlstuType.SelectedValue;
string CertType = ddlCertificateType.SelectedValue;
string Cert = txtCertificate.Text;
string Tel = txtTel.Text;
string Email = txtEmail.Text;
string Remark = txtRemark.Text;
string sql = "";
if (dataOperate.execSQL(sql))
{
if (barcode == "add")
{
sql = "insert into tb_stuInfo values('" + sBarcode + "','" + sPass + "','" + sName + "','" + Sex + "','" + sType + "','" + CertType + "','" +
Cert + "','" + Tel + "','" + Email + "','" + Remark + ")";
}
else
{
sql = "update tb_stuInfo set stuName='" + sName + "',sex='" + Sex + "',stuType='" + sType + "',certificateType='" + CertType + "',certificate='" +
Cert + "',tel='" + Tel + "',email='" + Email + "',remark='" + Remark + "' where stuBarCode='" + barcode + "'";
}
dataOperate.execSQL(sql);
Response.Write("<script>alert('设置成功!');window.opener.location.href=window.opener.location='stuInfo.aspx';window.close();</script>");
}
else
{
Response.Write("<script>alert('设置失败!')</script>");
}
}
public void bindDdlstuType()
{
string sql = "select * from tb_stuType";
ddlstuType.DataSource = dataOperate.getDataset(sql);
ddlstuType.DataTextField = "type";
ddlstuType.DataValueField = "id";
ddlstuType.DataBind();
}
public void bindstuInfo()
{
string sql = "select * from tb_stuInfo where stuBarCode='" + barcode + "'";
SqlDataReader sdr = dataOperate.getRow(sql);
sdr.Read();
txtstuBarCode.Text = sdr["stuBarcode"].ToString();
txtstuName.Text = sdr["stuName"].ToString();
txtRemark.Text = sdr["remark"].ToString();
txtTel.Text = sdr["tel"].ToString();
txtEmail.Text = sdr["email"].ToString();
txtCertificate.Text = sdr["certificate"].ToString();
if (sdr["sex"].ToString().Trim() == "男")
{
radbtnMan.Checked = true;
}
else
{
radbtnWoman.Checked = true;
}
ddlCertificateType.SelectedValue = sdr["certificateType"].ToString();
ddlstuType.SelectedValue = sdr["stuType"].ToString();
}
}
下面是涉及到的公共类函数:
public static bool execSQL(string sql)
{
//创建数据库连接
SqlConnection con = createCon();
//打开数据库连接
con.Open();
//创建SqlCommand对象
SqlCommand com = new SqlCommand(sql, con);
try
{
//执行SQL语句
com.ExecuteNonQuery();
}
catch (Exception e)
{
//返回布尔值False
return false;
}
finally
{
//关闭数据库连接
con.Close();
}
//返回布尔值True
return true;
}
本人觉得是不是那两个数据库的操作语句没有被执行而造成的。。