asp.net怎么获取项目根目录

2023-04-14 04:26 31次浏览 攻略

本文系骑着猪猪的CodeMonkey个人原创,其他媒体转载请注明出处。

图书管理系统

本次内容

在上一次的教程中我们已经完成了对于系统功能的分析和系统数据库的设计,从这次教程开始,我们开始着手实现这个小的实战项目,今天我们的主要任务是搭建出这个小系统的一个整体框架。

主要任务

  1. 将AdminLTE前台框架移入本系统当中

  2. 完成对于数据库操作的工具类

  3. 完成一个基本的数据操作类

  4. 配置一下整个项目的信息

AdminLTE

解压下载的adminLTE后,我们可以看到这么几个文件

解压后得到的文件

根据官方文档的显示,我们需要将这么几个文件夹引入到我们的项目当中

需要引入的文件夹

当然,除了这几个文件夹之外,我们还需要引入bootstrap的源码

在项目中新建一个文件夹,命名为"AdminLTE",并将我们需要的文件都复制粘贴到这个文件夹中

将文件引入项目

在网站的根目录中新建一个Demo页面,并用adminLTE中的页面替换该页面的内容:

新建Demo.aspx页面

注意事项

  1. aspx页面头部的那一段标签不可删除

  2. 中body标签内的东西应该全部放到Demo.aspx的form表单中

  3. 将原页面中的所有form标签全部替换为div标签

  4. 需要修改原页面中所有引用的路径(本案例中将所有的css、js、图片都放到了AdminLTE中所有需要在这些引用路径的前面加上“/AdminLTE/”)

AdminLTE页面结构说明

adminLTE页面结构

页面对应图片

右键选中Demo.aspx浏览器查看

成功引入AdminLTE

操作数据库的工具类

需要引入New做一些json的操作

第一步

第二步

如果需要这个dll的可以在评论上说一声,文章中不能发链接。。。。

上干货

using System;

using Sy;

using Sy.Generic;

using Sy;

using Sy.SqlClient;

using Sy;

using Sy;

using Sy;

using New;

public class MicrosoftSQLServer

{

SqlConnection MSCon;//数据库连接对象

public string ConnectionString;//数据库连接字符串

/// <summary>

/// 构造方法

/// </summary>

/// <param name="ConnStr">数据库连接字符串</param>

public MicrosoftSQLServer(string ConnStr)

{

ConnectionString = ConnStr;

MSCon = new SqlConnection(ConnectionString);

}

/// <summary>

/// 将json字符串转换为字典

/// </summary>

/// <param name="JSONText">json字符串</param>

/// <param name="DataParameters">字典</param>

void ParametersSerialize(string JSONText, ref Dictionary<string, object> DataParameters)

{

DataParameters = J;Dictionary<string, object>>(JSONText);

}

#region 执行存储过程-返回执行结果(return)值

/// <summary>

/// 执行存储过程-返回执行结果(return)值

/// </summary>

/// <param name="ProcName">存储过程名称</param>

/// <returns></returns>

public object Exec_Proc_Result(string ProcName)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(ProcName, MSCon);

cmd.CommandType = CommandTy;

SqlParameter par = new SqlParameter();

= Parame;

cmd.Parame(par);

cmd.ExecuteNonQuery();

MSCon.Close();

return ;

}

/// <summary>

/// 执行带参数的存储过程

/// </summary>

/// <param name="ProcName">存储过程名称</param>

/// <param name="Parameters">参数(json字符串)</param>

/// <returns></returns>

public object Exec_Proc_Result(string ProcName, string Parameters)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(ProcName, MSCon);

cmd.CommandType = CommandTy;

Dictionary<string, object> DataPars = new Dictionary<string, object>();

ParametersSerialize(Parameters, ref DataPars);

foreach (var dic in DataPars)

{

cmd.ParameWithValue, dic.Value);

}

SqlParameter par = new SqlParameter();

= Parame;

cmd.Parame(par);

cmd.ExecuteNonQuery();

MSCon.Close();

return ;

}

/// <summary>

/// 执行带参数的存储过程

/// </summary>

/// <param name="ProcName">存储过程名称</param>

/// <param name="Parameters">参数(字典)</param>

/// <returns></returns>

public object Exec_Proc_Result(string ProcName, Dictionary<string, object> Parameters)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(ProcName, MSCon);

cmd.CommandType = CommandTy;

foreach (var dic in Parameters)

{

cmd.ParameWithValue, dic.Value);

}

SqlParameter par = new SqlParameter();

= Parame;

cmd.Parame(par);

cmd.ExecuteNonQuery();

MSCon.Close();

return ;

}

#endregion

#region 执行查询-返回响应行数

/// <summary>

/// 执行sql语句

/// </summary>

/// <param name="SQLText">sql语句</param>

/// <returns></returns>

public int Execute_NonQuery(string SQLText)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

int result = cmd.ExecuteNonQuery();

MSCon.Close();

return result;

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(json)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public int Execute_NonQuery(string SQLText, string Parameters, bool IsProc)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

if (IsProc)

{

cmd.CommandType = CommandTy;

}

Dictionary<string, object> DataPars = new Dictionary<string, object>();

ParametersSerialize(Parameters, ref DataPars);

foreach (var dic in DataPars)

{

cmd.ParameWithValue, dic.Value);

}

int result = cmd.ExecuteNonQuery();

MSCon.Close();

return result;

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(字典)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public int Execute_NonQuery(string SQLText, Dictionary<string, object> Parameters, bool IsProc)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

if (IsProc)

{

cmd.CommandType = CommandTy;

}

foreach (var dic in Parameters)

{

cmd.ParameWithValue, dic.Value);

}

int result = cmd.ExecuteNonQuery();

MSCon.Close();

return result;

}

#endregion

#region 执行查询-返回首行首列

/// <summary>

/// 执行sql语句

/// </summary>

/// <param name="SQLText">sql语句</param>

/// <returns></returns>

public object Execute_Scalar(string SQLText)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

object result = cmd.ExecuteScalar();

MSCon.Close();

return result;

}

/// <summary>

/// 执行sql语句

/// </summary>

/// <param name="SQLText">sql语句</param>

/// <param name="Parameters">参数(json)</param>

/// <returns></returns>

public object Execute_Scalar(string SQLText, string Parameters)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

Dictionary<string, object> DataPars = new Dictionary<string, object>();

ParametersSerialize(Parameters, ref DataPars);

foreach (var dic in DataPars)

{

cmd.ParameWithValue, dic.Value);

}

object result = cmd.ExecuteScalar();

MSCon.Close();

return result;

}

/// <summary>

/// 执行sql语句

/// </summary>

/// <param name="SQLText">sql语句</param>

/// <param name="Parameters">参数(字典)</param>

/// <returns></returns>

public object Execute_Scalar(string SQLText, Dictionary<string, object> Parameters)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLText, MSCon);

foreach (var dic in Parameters)

{

cmd.ParameWithValue, dic.Value);

}

object result = cmd.ExecuteScalar();

MSCon.Close();

return result;

}

#endregion

#region 执行查询-返回DataTable数据

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public DataTable Execute_Select_ResultTable(string SQLSelectText, bool IsProc)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLSelectText, MSCon);

if (IsProc)

{

cmd.CommandType = CommandTy;

}

SqlDataAdapter sda = new SqlDataAdapter(cmd);

DataTable result = new DataTable();

(result);

MSCon.Close();

();

return result;

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(json)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public DataTable Execute_Select_ResultTable(string SQLSelectText, string Parameters, bool IsProc)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLSelectText, MSCon);

if (IsProc)

{

cmd.CommandType = CommandTy;

}

Dictionary<string, object> DataPars = new Dictionary<string, object>();

ParametersSerialize(Parameters, ref DataPars);

foreach (var dic in DataPars)

{

cmd.ParameWithValue, dic.Value);

}

SqlDataAdapter sda = new SqlDataAdapter(cmd);

DataTable result = new DataTable();

(result);

MSCon.Close();

();

return result;

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(字典)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public DataTable Execute_Select_ResultTable(string SQLSelectText, Dictionary<string, object> Parameters, bool IsProc)

{

MSCon.Open();

SqlCommand cmd = new SqlCommand(SQLSelectText, MSCon);

if (IsProc)

{

cmd.CommandType = CommandTy;

}

foreach (var dic in Parameters)

{

cmd.ParameWithValue, dic.Value);

}

SqlDataAdapter sda = new SqlDataAdapter(cmd);

DataTable result = new DataTable();

(result);

MSCon.Close();

();

return result;

}

#endregion

#region 执行查询-返回表的JSON数据

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public string Execute_Select_ResultTableJSON(string SQLSelectText, bool IsProc)

{

return J(Execute_Select_ResultTable(SQLSelectText, IsProc));

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(json)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public string Execute_Select_ResultTableJSON(string SQLSelectText, string Parameters, bool IsProc)

{

return J(Execute_Select_ResultTable(SQLSelectText, Parameters, IsProc));

}

/// <summary>

/// 执行sql语句或存储过程

/// </summary>

/// <param name="SQLSelectText">sql语句或存储过程名称</param>

/// <param name="Parameters">参数(字典)</param>

/// <param name="IsProc">是否为存储过程</param>

/// <returns></returns>

public string Execute_Select_ResultTableJSON(string SQLSelectText, Dictionary<string, object> Parameters, bool IsProc)

{

return J(Execute_Select_ResultTable(SQLSelectText, Parameters, IsProc));

}

#endregion

}

数据工具类

继续上干货,这个类现在暂时只有一些操作时间戳的方法,之后会逐步完善(同样需要New.dll)

using System;

using Sy.Generic;

using Sy;

using Sy;

using Sy;

using New;

/// <summary>

/// 用于数据处理及转换的一些类

/// </summary>

public class DataTools

{

/// <summary>

/// 获取当前时间戳

/// </summary>

/// <returns></returns>

public string getTimeStamp()

{

TimeSpan ts = Da – new DateTime(1970, 1, 1, 0, 0, 0, 0);

return Convert.ToInt64).ToString();

}

/// <summary>

/// 将时间戳转为时间

/// </summary>

/// <param name="time">时间戳(从DateTime(1970, 1, 1, 0, 0, 0, 0)开始)</param>

/// <returns></returns>

public string timeStampToDate(string time)

{

DateTime defaultTime = new DateTime(1970, 1, 1, 0, 0, 0);

long defaultTick = de;

long timeTick = defaultTick + Convert.ToInt64(time) * 10000;

//// 东八区 要加上8个小时

DateTime datatime = new DateTime(timeTick).AddHours(8);

return da();//报名时间

}

/// <summary>

/// 获取当前时间

/// </summary>

/// <returns></returns>

public string getDateTime()

{

return timeStampToDate(getTimeStamp());

}

/// <summary>

/// 把DataTable中的时间戳转为时间

/// </summary>

/// <param name="dt">DataTable</param>

/// <param name="temp">时间戳列的下标</param>

/// <returns></returns>

public DataTable dataTableTimeStampToDate(DataTable dt, int temp)

{

DataTable dt_result = new DataTable();

for (int i = 0; i < dt.Columns.Count; i++)

{

d[i].ColumnName);

}

for (int i = 0; i < dt.Rows.Count; i++)

{

DataRow dr = d();

for (int j = 0; j < dt.Columns.Count; j++)

{

if (j == temp)

{

string time = timeStampToDate[i][j].ToString());

dr[j] = time;

continue;

}

dr[j] = dt.Rows[i][j].ToString();

}

d(dr);

}

return dt_result;

}

}

配置项目信息

在Web.config文件中添加下面的信息

<appSettings>

<add key="SystemName" value="图书管理系统"/>

<add key="Version" value="1.0"/>

<add key="Developer" value="骑着猪猪的codemonkey"/>

<add key="ConString" value="server=.;database=LMS;uid=sa;pwd=qwer1234!@#$"/>

</appSettings>

配置文件

<add key="ConString" value="server=数据库ip地址;database=需要连接的数据库名称;uid=用户名;pwd=密码"/>

新建一个类,SystemInfo,将刚才添加到配置文件中的信息读入到程序中

using System;

using Sy.Generic;

using Sy;

using Sy;

using Sy;

/// <summary>

/// SystemInfo 的摘要说明

/// </summary>

public class SystemInfo

{

public static string systemName = Con["SystemName"].ToString();

public static string developer = Con["Developer"].ToString();

public static string version = Con["Version"].ToString();

public static string conString = Con["ConString"].ToString();

public SystemInfo()

{

//

// TODO: 在此处添加构造函数逻辑

//

}

}

让我们把这些配置信息加入到刚才的Demo页面中

方法:<%=Sy %>以这样标签的信息输出到相应的位置

显示效果

到此,基本的框架就已经搭建完成了

最后的话

今天的教程完成了图书管理系统项目框架的搭建,一些关键的和常用的方法我们都已经封装成了类,更便于之后的开发,在接下来的教程中我们会逐步的利用这些方法以及之前所学习的东西来完成这个系统~~~

今天的教程就到这里了,有需要源码参考或是有别的什么需要的可以在评论那给我留言~~

相关推荐