通過網頁頁面添加學生資訊,自己新增了一項“學”(we),添加資訊時即出現問題。之前無問題。



前臺代碼:
(部分省略)
</td>
<td style="background-image: url(Images/tab/tab_07.gif); height: 30px; width: 11px;"></td>
</tr>
<tr>
<td colspan="3">
<table class="tableframe" cellpadding="0" cellspacing="0">
<tr>
<td class="tdleft">學號:</td>
<td>
<asp:TextBox ID="txtstuId" runat="server" MaxLength="20" ></asp:TextBox></td>
</tr>
<tr>
<td class="tdleft">密碼:</td>
<td>
<asp:TextBox ID="txtstuPwd" runat="server" MaxLength="20" Width="150px" TextMode="Password" ></asp:TextBox></td>
</tr>
<tr>
<td class="tdleft">姓名:</td>
<td>
<asp:TextBox ID="txtstuName" runat="server" MaxLength="10"></asp:TextBox></td>
</tr>
<tr>
<td class="tdleft">學:</td>
<td>
<asp:TextBox ID="txtw" runat="server" MaxLength="20" ></asp:TextBox></td>
</tr>
<tr>
<td class="tdleft">性別:</td>
<td>
<asp:RadioButton ID="radMan" runat="server" Checked="true" GroupName="sex" />男
<asp:RadioButton ID="radWoman" runat="server" GroupName="sex" />女
</tr>
<tr>
<td class="tdleft">出生日期:</td>
<td>
<input name="date" type="text" id="txtBirth" onclick="new Calendar().show(this);" width="150px" readonly="readonly" runat="server"/></td>
</tr>
<tr>
<td class="tdleft">班級:</td>
<td>
<asp:DropDownList ID="ddlClass" runat="server" Width="153px"></asp:DropDownList>
</td>
</tr>
<tr>
<td class="tdleft">入學時間:</td>
<td>
<input name="date" type="text" id="txtJionTime" onclick="new Calendar().show(this);" width="150px" readonly="readonly" runat="server"/></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<asp:Button ID="btnOk" runat="server" Text="添 加" OnClick="btnOk_Click" />
<asp:Button ID="btnReturn" runat="server" Text="返 回" OnClick="btnReturn_Click" />
</td>
后臺代碼:
namespace SMSystem
{
public partial class StudentAdd : System.Web.UI.Page
{
string connStr = ConfigurationManager.ConnectionStrings["SysConnstr"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
btnOk.Attributes.Add("OnClick", "return checkStuInfo();");
if (!IsPostBack)
{
BindClass();
if (Request["id"] != null)
{
lableInfo.Text = "學生資訊修改";
btnOk.Text = "修 改";
txtstuPwd.Enabled = false;
BindStuInfo(Request["id"].ToString());
}
}
}
private void BindClass()
{
string sql = "select * from tb_ClassInfo";
DataSet ds= SqlHelper.ExecuteDataset(connStr, CommandType.Text, sql);
ddlClass.DataValueField = "Id";
ddlClass.DataTextField = "ClassName";
ddlClass.DataSource = ds;
ddlClass.DataBind();
}
private void BindStuInfo(string id)
{
string sql = "select * from tb_StuInfo where Id=" + id ;
SqlDataReader sdr= SqlHelper.ExecuteReader(connStr, CommandType.Text, sql);
if (sdr.Read())
{
txtstuId.Text = sdr["StuNum"].ToString().Trim();
txtstuName.Text = sdr["StuName"].ToString().Trim();
txtwe.Text = sdr["we"].ToString().Trim();
if (sdr["Sex"].ToString() == "False")
{
radMan.Checked = false;
radWoman.Checked = true;
}
ddlClass.SelectedValue = sdr["ClassId"].ToString();
txtBirth.Value = Convert.ToDateTime(sdr["Birthday"]).ToString("yyyy-MM-dd");
txtJionTime.Value =Convert.ToDateTime(sdr["StartTime"]).ToString("yyyy-MM-dd");
}
sdr.Close();
}
protected void btnOk_Click(object sender, EventArgs e)
{
//添加
if (btnOk.Text == "添 加")
{
//查詢學號是否重復
if (!CheckStuId("add"))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "addcheckerror", "alert('該學號已存在!')", true);
return;
}
string sql = "insert into tb_StuInfo values(@StuNum,@StuPwd,@StuName,@we,@Birthday,@Sex,@ClassId,@StartTime)";
SqlParameter[] parameters =
{
new SqlParameter("@StuNum",txtstuId.Text.Trim()),
new SqlParameter("@StuPwd",txtstuPwd.Text.Trim()),
new SqlParameter("@StuName",txtstuName.Text.Trim()),
new SqlParameter("@we",txtwe.Text.Trim()),
new SqlParameter("@Birthday",txtBirth.Value),
new SqlParameter("@Sex",radMan.Checked),
new SqlParameter("@ClassId",Convert.ToInt32(ddlClass.SelectedValue)),
new SqlParameter("@StartTime",txtJionTime.Value)
};
bool result = false;
result = SqlHelper.ExecuteNonQuery(connStr, CommandType.Text, sql, parameters) > 0 ? true : false;
if (result)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "addOk", "alert('添加成功!')", true);
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "addError", "alert('添加失敗!')", true);
}
}
//修改
else
{
//查詢學號是否重復
if (!CheckStuId("upd"))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "updcheckerror", "alert('該學號已存在!')", true);
return;
}
string sql = "update tb_StuInfo set StuNum=@StuNum,StuName=@StuName,we=@we,Birthday=@Birthday,Sex=@Sex,ClassId=@ClassId,StartTime=@StartTime where Id=" + Request["id"];
SqlParameter[] parameters =
{
new SqlParameter("@StuNum",txtstuId.Text.Trim()),
new SqlParameter("@StuName",txtstuName.Text.Trim()),
new SqlParameter("@we",txtwe.Text.Trim()),
new SqlParameter("@Birthday",txtBirth.Value),
new SqlParameter("@Sex",radMan.Checked),
new SqlParameter("@ClassId",Convert.ToInt32(ddlClass.SelectedValue)),
new SqlParameter("@StartTime",txtJionTime.Value)
};
bool result = false;
result = SqlHelper.ExecuteNonQuery(connStr, CommandType.Text, sql, parameters) > 0 ? true : false;
if (result)
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "editOk", "alert('修改成功!')", true);
}
else
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "editError", "alert('修改失敗!')", true);
}
}
}
private bool CheckStuId(string p)
{
if (p == "add")
{
string sql = "select StuNum from tb_StuInfo where StuNum=@StuNum";
SqlParameter parameter = new SqlParameter("@StuNum", txtstuId.Text.Trim());
object obj= SqlHelper.ExecuteScalar(connStr, CommandType.Text, sql, parameter);
if (obj != null)
{
return false;
}
}
else
{
string sql = "select StuNum from tb_StuInfo where StuNum=@StuNum and Id<>" + Request["id"];
SqlParameter parameter = new SqlParameter("@StuNum", txtstuId.Text.Trim());
object obj = SqlHelper.ExecuteScalar(connStr, CommandType.Text, sql, parameter);
if (obj != null)
{
return false;
}
}
return true;
}
protected void btnRetur
uj5u.com熱心網友回復:
代碼我就不看了..我覺得任何人也不會去看..
至于錯誤 給你打個比方.
insert into xxoo (a,b,c) values(1,2)
就會出現你遇到的問題..
現在懂了嗎?
不懂 就問問老師.
uj5u.com熱心網友回復:
這是帶引數的SQL陳述句,我寫的引數和表列都是對應的啊
uj5u.com熱心網友回復:
那就是表結構跟你values后面的不匹配啊...你看下表結構...
uj5u.com熱心網友回復:
大哥,你看看我的后臺代碼中insert陳述句,我看來和表結構是對著的
uj5u.com熱心網友回復:
不行就出去抽根煙,喝口茶,靜下心,好好對應一遍,肯定是引數和表結構不匹配
uj5u.com熱心網友回復:
insert into xxoo (a,b,c) values(1,2) 按這個結構來 就完事了uj5u.com熱心網友回復:
樓主可以先在旁邊寫一個欄位少的demo試試,然后慢慢加上去。uj5u.com熱心網友回復:
你表結構都沒截個全,咋看?一般陳述句我們使用指定所要插入資料的列,這樣你后續增加欄位,可以為空的或者默認值的話就不用再去改程式代碼
uj5u.com熱心網友回復:
那就是表結構跟你values后面的不匹配啊...
你看下表結構...
大哥,你看看我的后臺代碼中insert陳述句,我看來和表結構是對著的
你表結構都沒截個全,咋看?一般陳述句我們使用指定所要插入資料的列,這樣你后續增加欄位,可以為空的或者默認值的話就不用再去改程式代碼
沒加we之前是好的,加了we以后才報錯,就加了這一列,values后面也加上@we了
uj5u.com熱心網友回復:
這個格式肯定報錯吧,列名和values數目都不一樣
uj5u.com熱心網友回復:
不行就出去抽根煙,喝口茶,靜下心,好好對應一遍,肯定是引數和表結構不匹配
都快把螢屏望穿了……
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/81407.html
標籤:C#
上一篇:The maximum column width for an individual cell is 255 characters。
