Server.MapPath怎么用? "之后我用Server.MapPath还是不行,"你是怎么用的?代码贴出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath("dbWebIS.mdb"); Server.MapPath("dbWebIS.mdb")->Server.MapPath(".")+"\\dbWebIS.mdb"; 加<%@ Import Namespace="System.Web.UI" %>后private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb";还是错!wu wu.......... 你的dbWebIS.mdb和这个执行的.aspx是放在一个文件夹下吗? <%@ import Namespace="System.Data.OleDb" %><%@ Import Namespace="System" %><%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Web.UI" %><HTML> <HEAD> <title>Subject Record</title> <script runat="server" language="C#"> private String strSQL="SELECT * FROM Subject"; //private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=C:\\dbWebIS.mdb;"; private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb"; private OleDbConnection objConnection; private String SubjectTableName= "SubjectTable"; private String strViewString= "SubjectID"; private void Connect(){ if(objConnection==null){ objConnection=new OleDbConnection(strConnection); } if(objConnection.State==ConnectionState.Closed){ objConnection.Open(); } } private void Disconnect(){ objConnection.Close(); } private void LoadGrid(){ Connect(); OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection); DataSet ds=new DataSet(); adapter.Fill(ds,SubjectTableName); Disconnect(); DataTable dtSubject=ds.Tables[SubjectTableName]; DataView dvView= new DataView(dtSubject); dvView.Sort=strViewString; dgSubject.DataSource=dvView; //dgStudent.DataSource=ds.Tables[StudentTableName]; dgSubject.DataBind(); } public void EditRecord(object sender, DataGridCommandEventArgs e){ dgSubject.EditItemIndex=e.Item.ItemIndex; LoadGrid(); } public void CancelEdit(object sender, DataGridCommandEventArgs e){ dgSubject.EditItemIndex=-1; LoadGrid(); } public void AddRecord(object sender, System.EventArgs e){ String SubjectID=TextBox1.Text; String SubjectName=TextBox2.Text; String LecturerName=TextBox3.Text; if(SubjectID==""||SubjectName==""||LecturerName=="") { lblError.Text="Input Text can't be empty"; lblError.Visible=true; }else{ lblError.Visible=false; AddSubject(SubjectID,SubjectName,LecturerName); } LoadGrid(); } public void UpdateRecord(object sender, DataGridCommandEventArgs e){ String SubjectID=e.Item.Cells[0].Text; TextBox SubjectNameTextBox=(TextBox)e.Item.Cells[1].Controls[0]; TextBox LecturerNameTextBox=(TextBox)e.Item.Cells[2].Controls[0]; String SubjectName=SubjectNameTextBox.Text; String LecturerName=LecturerNameTextBox.Text; dgSubject.EditItemIndex=-1; if(SubjectName==""||LecturerName=="") { lblError.Text="Input Text can't be empty"; lblError.Visible=true; }else{ lblError.Visible=false; UpdateSubject(SubjectID,SubjectName,LecturerName); } LoadGrid(); // DataSet ds=new DataSet(); //dgStudent.DataSource=ds.Tables[StudentTableName]; //dgStudent.DataBind(); } public void DeleteRecord(object sender, DataGridCommandEventArgs e){ String SubjectID=e.Item.Cells[0].Text; dgSubject.EditItemIndex=-1; DeleteSubject(SubjectID); LoadGrid(); // DataSet ds=new DataSet(); //dgStudent.DataSource=ds.Tables[StudentTableName]; //dgStudent.DataBind(); } private void AddSubject(String SubjectID,String SubjectName,String LecturerName) { Connect(); OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection); DataSet ds=new DataSet(); adapter.Fill(ds,SubjectTableName); Disconnect(); DataTable tbl= ds.Tables[SubjectTableName]; //tbl.PrimaryKey= new DataColumn[] {tbl.Columns["StudentID"]}; DataRow row=tbl.NewRow(); row["SubjectID"]=SubjectID; row["SubjectName"]=SubjectName; row["LecturerName"]=LecturerName; tbl.Rows.Add(row); //DataRow row=tbl.Rows.Find(StudentID); //row["FamilyName"]=FamilyName; //row["GivenName"]=GivenName; OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter); Connect(); adapter.Update(ds, SubjectTableName); Disconnect(); } private void UpdateSubject(String SubjectID,String SubjectName,String LecturerName) { Connect(); OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection); DataSet ds=new DataSet(); adapter.Fill(ds,SubjectTableName); Disconnect(); DataTable tbl= ds.Tables[SubjectTableName]; tbl.PrimaryKey= new DataColumn[] {tbl.Columns["SubjectID"]}; DataRow row=tbl.Rows.Find(SubjectID); row["SubjectName"]=SubjectName; row["LecturerName"]=LecturerName; OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter); Connect(); adapter.Update(ds, SubjectTableName); Disconnect(); } private void DeleteSubject(String SubjectID){ Connect(); OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection); DataSet ds=new DataSet(); adapter.Fill(ds,SubjectTableName); Disconnect(); DataTable tbl= ds.Tables[SubjectTableName]; tbl.PrimaryKey= new DataColumn[] {tbl.Columns["SubjectID"]}; DataRow row=tbl.Rows.Find(SubjectID); row.Delete(); OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter); Connect(); adapter.Update(ds, SubjectTableName); Disconnect(); } // OleDbCommand objCommand=new OleDbCommand(strSQL, objConnection); // // objConnection.Open(); // dgStudent.DataSource=objCommand.ExecuteReader(); // dgStudent.DataBind(); // objConnection.Close(); private void SortColumn(object sender, DataGridSortCommandEventArgs e){ //if (e.SortExpression == "FamilyName"){ // strViewString="StudentID, FamilyName"; // }else{ // strViewString=e.SortExpression; // LoadGrid(); // } } private void Page_Load(object sender, System.EventArgs e) { if (Session["login"].ToString() != "yes") Response.Redirect("login.aspx"); if(!IsPostBack) LoadGrid(); } </script> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </HEAD> <body ms_positioning="GridLayout"> <form id="Form1" style="OVERFLOW: auto" method="post" runat="server"> <asp:label id="Label1" style="Z-INDEX: 101; LEFT: 87px; POSITION: absolute; TOP: 320px" runat="server">Subject ID</asp:label><asp:label id="Label2" style="Z-INDEX: 102; LEFT: 87px; POSITION: absolute; TOP: 352px" runat="server">Subject Name</asp:label><asp:label id="Label3" style="Z-INDEX: 103; LEFT: 87px; POSITION: absolute; TOP: 384px" runat="server">Lecturer Name</asp:label><asp:textbox id="TextBox1" style="Z-INDEX: 109; LEFT: 221px; POSITION: absolute; TOP: 319px" runat="server"></asp:textbox><asp:textbox id="TextBox2" style="Z-INDEX: 110; LEFT: 221px; POSITION: absolute; TOP: 351px" runat="server"></asp:textbox><asp:textbox id="TextBox3" style="Z-INDEX: 111; LEFT: 221px; POSITION: absolute; TOP: 383px" runat="server"></asp:textbox><asp:button id="btnInsert" style="Z-INDEX: 117; LEFT: 91px; POSITION: absolute; TOP: 431px" onclick="AddRecord" runat="server" Width="67px" Text="Insert"></asp:button> <div style="Z-INDEX: 118; LEFT: 23px; OVERFLOW: auto; WIDTH: 763px; BORDER-TOP-STYLE: outset; BORDER-RIGHT-STYLE: outset; BORDER-LEFT-STYLE: outset; POSITION: absolute; TOP: 20px; HEIGHT: 229px; BORDER-BOTTOM-STYLE: outset" ms_positioning="FlowLayout"><asp:datagrid id="dgSubject" runat="server" Width="707px" Height="213px" PageSize="5" AllowCustomPaging="True" GridLines="None" CellPadding="3" BackColor="White" BorderWidth="2px" CellSpacing="1" BorderStyle="Ridge" BorderColor="White" onDeleteCommand="DeleteRecord" OnUpdateCommand="UpdateRecord" OnCancelCommand="CancelEdit" OnEditCommand="EditRecord" AutoGenerateColumns="False" OnSortCommand="SortColumn" AllowSorting="True"> <SelectedItemStyle font-bold="True" forecolor="White" backcolor="#9471DE"></SelectedItemStyle> <ItemStyle forecolor="Black" backcolor="#DEDFDE"></ItemStyle> <HeaderStyle font-bold="True" forecolor="#E7E7FF" backcolor="#4A3C8C"></HeaderStyle> <FooterStyle forecolor="Black" backcolor="#C6C3C6"></FooterStyle> <Columns> <asp:BoundColumn DataField="SubjectID" HeaderText="Subject ID" ReadOnly="True"></asp:BoundColumn> <asp:BoundColumn DataField="SubjectName" HeaderText="Subject Name"></asp:BoundColumn> <asp:BoundColumn DataField="LecturerName" HeaderText="Lecturer Name"></asp:BoundColumn> <asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Save" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn> <asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn> </Columns> <PagerStyle visible="False" horizontalalign="Right" forecolor="Black" backcolor="#C6C3C6"></PagerStyle> </asp:datagrid></div> <asp:label id="lblError" style="Z-INDEX: 119; LEFT: 272px; POSITION: absolute; TOP: 272px" runat="server" Width="228px" BorderStyle="Outset" Font-Size="Medium" Font-Bold="True" ForeColor="#C04000" Visible="False">Label</asp:label> </form> </body></HTML> private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb";改成:private string _strConn;private string strConnection{ get { if( _strConn==null ) _strConn ="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb"; return _strConn; }} yeah,成了.谢谢,能帮忙说说为什么吗? 因为你的变量声明的时候就初始化,这个时候Page.Server这个属性还没有值,也就是说初始化的时候只能使用静态的属性我把你的字段改成了属性,并且放到第一次访问的时候才初始化,这个时候就可以使用Server这个属性了 |WPF| Grid如何让一行自适应,有相应的XAML源码 谢谢 C# 未将对象引用设置到对象的实例 C#菜鸟求助,请各位进来帮帮忙 左键如何弹出菜单? 如何将richtextbox控件的内容和格式存入access数据库 救急,怎样才能获取当前状态下dataGrid中各列的宽度(在线等) c# winform中绑定数据库后,如何对点击的行进行更新操作? 游戏引擎架构 VS2003启动时提示两个XML文件出错,怎么办呀?UP有分! 爬虫:html中script标签的解析 DataView的Sort方法中排序字段的先后对排序结果有没有影响? VS.NET IDE出毛病了
->
Server.MapPath(".")+"\\dbWebIS.mdb";
private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb";
还是错!
wu wu..........
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.UI" %>
<HTML>
<HEAD>
<title>Subject Record</title>
<script runat="server" language="C#"> private String strSQL="SELECT * FROM Subject";
//private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=C:\\dbWebIS.mdb;";
private String strConnection="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb";
private OleDbConnection objConnection;
private String SubjectTableName= "SubjectTable";
private String strViewString= "SubjectID";
private void Connect(){
if(objConnection==null){
objConnection=new OleDbConnection(strConnection);
}
if(objConnection.State==ConnectionState.Closed){
objConnection.Open();
}
}
private void Disconnect(){
objConnection.Close();
}
private void LoadGrid(){
Connect();
OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection);
DataSet ds=new DataSet();
adapter.Fill(ds,SubjectTableName);
Disconnect();
DataTable dtSubject=ds.Tables[SubjectTableName];
DataView dvView= new DataView(dtSubject);
dvView.Sort=strViewString;
dgSubject.DataSource=dvView;
//dgStudent.DataSource=ds.Tables[StudentTableName];
dgSubject.DataBind();
}
public void EditRecord(object sender, DataGridCommandEventArgs e){
dgSubject.EditItemIndex=e.Item.ItemIndex;
LoadGrid();
}
public void CancelEdit(object sender, DataGridCommandEventArgs e){
dgSubject.EditItemIndex=-1;
LoadGrid();
}
public void AddRecord(object sender, System.EventArgs e){
String SubjectID=TextBox1.Text;
String SubjectName=TextBox2.Text;
String LecturerName=TextBox3.Text;
if(SubjectID==""||SubjectName==""||LecturerName=="") {
lblError.Text="Input Text can't be empty";
lblError.Visible=true;
}else{
lblError.Visible=false;
AddSubject(SubjectID,SubjectName,LecturerName);
}
LoadGrid();
}
public void UpdateRecord(object sender, DataGridCommandEventArgs e){
String SubjectID=e.Item.Cells[0].Text;
TextBox SubjectNameTextBox=(TextBox)e.Item.Cells[1].Controls[0];
TextBox LecturerNameTextBox=(TextBox)e.Item.Cells[2].Controls[0]; String SubjectName=SubjectNameTextBox.Text;
String LecturerName=LecturerNameTextBox.Text;
dgSubject.EditItemIndex=-1;
if(SubjectName==""||LecturerName=="") {
lblError.Text="Input Text can't be empty";
lblError.Visible=true;
}else{
lblError.Visible=false;
UpdateSubject(SubjectID,SubjectName,LecturerName);
}
LoadGrid();
// DataSet ds=new DataSet();
//dgStudent.DataSource=ds.Tables[StudentTableName];
//dgStudent.DataBind();
}
public void DeleteRecord(object sender, DataGridCommandEventArgs e){
String SubjectID=e.Item.Cells[0].Text;
dgSubject.EditItemIndex=-1;
DeleteSubject(SubjectID);
LoadGrid();
// DataSet ds=new DataSet();
//dgStudent.DataSource=ds.Tables[StudentTableName];
//dgStudent.DataBind();
}
private void AddSubject(String SubjectID,String SubjectName,String LecturerName)
{
Connect();
OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection);
DataSet ds=new DataSet();
adapter.Fill(ds,SubjectTableName);
Disconnect();
DataTable tbl= ds.Tables[SubjectTableName];
//tbl.PrimaryKey= new DataColumn[] {tbl.Columns["StudentID"]};
DataRow row=tbl.NewRow();
row["SubjectID"]=SubjectID;
row["SubjectName"]=SubjectName;
row["LecturerName"]=LecturerName;
tbl.Rows.Add(row);
//DataRow row=tbl.Rows.Find(StudentID);
//row["FamilyName"]=FamilyName;
//row["GivenName"]=GivenName;
OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter);
Connect();
adapter.Update(ds, SubjectTableName);
Disconnect();
}
private void UpdateSubject(String SubjectID,String SubjectName,String LecturerName)
{
Connect();
OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection);
DataSet ds=new DataSet();
adapter.Fill(ds,SubjectTableName);
Disconnect();
DataTable tbl= ds.Tables[SubjectTableName];
tbl.PrimaryKey= new DataColumn[] {tbl.Columns["SubjectID"]};
DataRow row=tbl.Rows.Find(SubjectID);
row["SubjectName"]=SubjectName;
row["LecturerName"]=LecturerName;
OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter);
Connect();
adapter.Update(ds, SubjectTableName);
Disconnect();
}
private void DeleteSubject(String SubjectID){
Connect();
OleDbDataAdapter adapter=new OleDbDataAdapter(strSQL, objConnection);
DataSet ds=new DataSet();
adapter.Fill(ds,SubjectTableName);
Disconnect();
DataTable tbl= ds.Tables[SubjectTableName];
tbl.PrimaryKey= new DataColumn[] {tbl.Columns["SubjectID"]};
DataRow row=tbl.Rows.Find(SubjectID);
row.Delete();
OleDbCommandBuilder cb= new OleDbCommandBuilder(adapter);
Connect();
adapter.Update(ds, SubjectTableName);
Disconnect();
}
// OleDbCommand objCommand=new OleDbCommand(strSQL, objConnection);
//
// objConnection.Open();
// dgStudent.DataSource=objCommand.ExecuteReader();
// dgStudent.DataBind();
// objConnection.Close();
private void SortColumn(object sender, DataGridSortCommandEventArgs e){
//if (e.SortExpression == "FamilyName"){
// strViewString="StudentID, FamilyName";
// }else{
// strViewString=e.SortExpression;
// LoadGrid();
// }
}
private void Page_Load(object sender, System.EventArgs e)
{
if (Session["login"].ToString() != "yes") Response.Redirect("login.aspx");
if(!IsPostBack)
LoadGrid();
}
</script>
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body ms_positioning="GridLayout">
<form id="Form1" style="OVERFLOW: auto" method="post" runat="server">
<asp:label id="Label1" style="Z-INDEX: 101; LEFT: 87px; POSITION: absolute; TOP: 320px" runat="server">Subject ID</asp:label><asp:label id="Label2" style="Z-INDEX: 102; LEFT: 87px; POSITION: absolute; TOP: 352px" runat="server">Subject Name</asp:label><asp:label id="Label3" style="Z-INDEX: 103; LEFT: 87px; POSITION: absolute; TOP: 384px" runat="server">Lecturer Name</asp:label><asp:textbox id="TextBox1" style="Z-INDEX: 109; LEFT: 221px; POSITION: absolute; TOP: 319px" runat="server"></asp:textbox><asp:textbox id="TextBox2" style="Z-INDEX: 110; LEFT: 221px; POSITION: absolute; TOP: 351px" runat="server"></asp:textbox><asp:textbox id="TextBox3" style="Z-INDEX: 111; LEFT: 221px; POSITION: absolute; TOP: 383px" runat="server"></asp:textbox><asp:button id="btnInsert" style="Z-INDEX: 117; LEFT: 91px; POSITION: absolute; TOP: 431px" onclick="AddRecord" runat="server" Width="67px" Text="Insert"></asp:button>
<div style="Z-INDEX: 118; LEFT: 23px; OVERFLOW: auto; WIDTH: 763px; BORDER-TOP-STYLE: outset; BORDER-RIGHT-STYLE: outset; BORDER-LEFT-STYLE: outset; POSITION: absolute; TOP: 20px; HEIGHT: 229px; BORDER-BOTTOM-STYLE: outset" ms_positioning="FlowLayout"><asp:datagrid id="dgSubject" runat="server" Width="707px" Height="213px" PageSize="5" AllowCustomPaging="True" GridLines="None" CellPadding="3" BackColor="White" BorderWidth="2px" CellSpacing="1" BorderStyle="Ridge" BorderColor="White" onDeleteCommand="DeleteRecord" OnUpdateCommand="UpdateRecord" OnCancelCommand="CancelEdit" OnEditCommand="EditRecord" AutoGenerateColumns="False" OnSortCommand="SortColumn" AllowSorting="True">
<SelectedItemStyle font-bold="True" forecolor="White" backcolor="#9471DE"></SelectedItemStyle>
<ItemStyle forecolor="Black" backcolor="#DEDFDE"></ItemStyle>
<HeaderStyle font-bold="True" forecolor="#E7E7FF" backcolor="#4A3C8C"></HeaderStyle>
<FooterStyle forecolor="Black" backcolor="#C6C3C6"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="SubjectID" HeaderText="Subject ID" ReadOnly="True"></asp:BoundColumn>
<asp:BoundColumn DataField="SubjectName" HeaderText="Subject Name"></asp:BoundColumn>
<asp:BoundColumn DataField="LecturerName" HeaderText="Lecturer Name"></asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Save" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
<asp:ButtonColumn Text="Delete" CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyle visible="False" horizontalalign="Right" forecolor="Black" backcolor="#C6C3C6"></PagerStyle>
</asp:datagrid></div>
<asp:label id="lblError" style="Z-INDEX: 119; LEFT: 272px; POSITION: absolute; TOP: 272px" runat="server" Width="228px" BorderStyle="Outset" Font-Size="Medium" Font-Bold="True" ForeColor="#C04000" Visible="False">Label</asp:label>
</form>
</body>
</HTML>
改成:private string _strConn;
private string strConnection
{
get {
if( _strConn==null )
_strConn ="Provider=Microsoft.Jet.OleDb.4.0; data source=" + Server.MapPath(".")+"\\dbWebIS.mdb";
return _strConn;
}
}
谢谢,
能帮忙说说为什么吗?
我把你的字段改成了属性,并且放到第一次访问的时候才初始化,这个时候就可以使用Server这个属性了