为什么.net用C#往Access数据库写不进数据,但删除或读取都可以
<scriptlanguage="C#"runat="server">voidbtn(objectsender,EventArgse){stringsid=textbox...
<script language="C#" runat="server">
void btn(object sender,EventArgs e)
{
string sid=textbox1.Text;
int stihao=0,flag=0; //数据库中若无数据,flag不会产生循环赋值,必须赋初值0
string ti_mulu;
string strc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ";
strc+=Server.MapPath("student.mdb"); //使用相对路径
//C:\\Inetpub\\wwwroot\\RWdatabase\\student.mdb"; //原来的绝对路径
OleDbConnection olecon=new OleDbConnection(strc);
olecon.Open();
OleDbCommand comd = new OleDbCommand();
comd.Connection = olecon;
comd.CommandText = "select * from biao";
OleDbDataAdapter DA = new OleDbDataAdapter("select * from biao",olecon);
// DA.SelectCommand = comd;
//DA.InsertCommand = combuilder.GetInsertCommand(); //这行好象没用
// DA.UpdateCommand = combuilder.GetUpdateCommand();
//DA.DeleteCommand = combuilder.GetDeleteCommand();
//olecon.Close(); 这里不能关闭,后面还要写呢
DataSet DS = new DataSet();
DA.Fill(DS,"biao");
DataTable DT;
DataRowCollection coldrow;
DataRow drow;
DT=DS.Tables["biao"];
coldrow = DT.Rows;
for(int i=0;i<coldrow.Count;i++)
{
drow = coldrow[i];
if(Convert.ToInt32(drow[0])==Convert.ToInt32(textbox1.Text))
{stihao=Convert.ToInt32(drow[1]); flag=1; break;}
else flag=0;
}
if(flag==0) //没找到学号,要写数据
{
System.Random rnd = new System.Random();
int intrnd = rnd.Next(0,6); //产生随即题号
stihao=intrnd;
drow=DS.Tables["biao"].NewRow(); //写 (写不进去,可能数据类型不匹配)
drow[0]=Convert.ToInt32(textbox1.Text); //或=textbox1.Text
drow[1]=Convert.ToInt32(stihao);
DS.Tables["biao"].Rows.Add(drow);
DS.Tables["biao"].AcceptChanges();
OleDbCommandBuilder combuilder = new OleDbCommandBuilder(DA);
DA.Update(DS,"biao");
//删除实验,证明可以删除
comd.CommandText="delete from biao where id=7";
comd.ExecuteNonQuery();
olecon.Close();
label1.Text+="增加成功";
//写完后,出题,题号为刚产生的随即数字
ti_mulu="../test3/ti"+Convert.ToString(stihao)+".htm";
Response.Redirect(ti_mulu);
}
else //找到学号,出题,题号为数据库中的题号
{
ti_mulu="../test3/ti"+Convert.ToString(stihao)+".htm";
Response.Redirect(ti_mulu);
label1.Text+="找到学号";
}
olecon.Close();
}
</script>
</HEAD> 展开
void btn(object sender,EventArgs e)
{
string sid=textbox1.Text;
int stihao=0,flag=0; //数据库中若无数据,flag不会产生循环赋值,必须赋初值0
string ti_mulu;
string strc = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = ";
strc+=Server.MapPath("student.mdb"); //使用相对路径
//C:\\Inetpub\\wwwroot\\RWdatabase\\student.mdb"; //原来的绝对路径
OleDbConnection olecon=new OleDbConnection(strc);
olecon.Open();
OleDbCommand comd = new OleDbCommand();
comd.Connection = olecon;
comd.CommandText = "select * from biao";
OleDbDataAdapter DA = new OleDbDataAdapter("select * from biao",olecon);
// DA.SelectCommand = comd;
//DA.InsertCommand = combuilder.GetInsertCommand(); //这行好象没用
// DA.UpdateCommand = combuilder.GetUpdateCommand();
//DA.DeleteCommand = combuilder.GetDeleteCommand();
//olecon.Close(); 这里不能关闭,后面还要写呢
DataSet DS = new DataSet();
DA.Fill(DS,"biao");
DataTable DT;
DataRowCollection coldrow;
DataRow drow;
DT=DS.Tables["biao"];
coldrow = DT.Rows;
for(int i=0;i<coldrow.Count;i++)
{
drow = coldrow[i];
if(Convert.ToInt32(drow[0])==Convert.ToInt32(textbox1.Text))
{stihao=Convert.ToInt32(drow[1]); flag=1; break;}
else flag=0;
}
if(flag==0) //没找到学号,要写数据
{
System.Random rnd = new System.Random();
int intrnd = rnd.Next(0,6); //产生随即题号
stihao=intrnd;
drow=DS.Tables["biao"].NewRow(); //写 (写不进去,可能数据类型不匹配)
drow[0]=Convert.ToInt32(textbox1.Text); //或=textbox1.Text
drow[1]=Convert.ToInt32(stihao);
DS.Tables["biao"].Rows.Add(drow);
DS.Tables["biao"].AcceptChanges();
OleDbCommandBuilder combuilder = new OleDbCommandBuilder(DA);
DA.Update(DS,"biao");
//删除实验,证明可以删除
comd.CommandText="delete from biao where id=7";
comd.ExecuteNonQuery();
olecon.Close();
label1.Text+="增加成功";
//写完后,出题,题号为刚产生的随即数字
ti_mulu="../test3/ti"+Convert.ToString(stihao)+".htm";
Response.Redirect(ti_mulu);
}
else //找到学号,出题,题号为数据库中的题号
{
ti_mulu="../test3/ti"+Convert.ToString(stihao)+".htm";
Response.Redirect(ti_mulu);
label1.Text+="找到学号";
}
olecon.Close();
}
</script>
</HEAD> 展开
展开全部
是你的数据库的文件所在的文件夹的权限没给设置好,右击数据库的文件所在的文件夹,出现文件夹属性对话框,单击“安全”选项,如果没有“安全”选项,则在控件面板中单击“文件夹选项”,选中“查看”选项,把“使用简单文件共享”的勾去掉。接着上面的步骤,在安全选项中。单击“添加”,出现选择用户和组对话框,单击“高级”,在对话框中单击“立即查找”,在底下出现很多的用户名称,选择ASPNET,单击“确定”,再单击“确定”,在安全选项的组或用户名称中可以看到刚才添加的ASPNET用户,选中这个用户名称,在底下的权限中,有读取、写入等权限,在“写入”前打勾,确定就OK。哎,打字好难啊!为你这个悬赏分为0分的回答,真不值得,哎,算了,不计较这些了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询