asp.net基于三层架构、MVC和SQLServer2012实现用户注册 500C

一、三层架构
1、业务逻辑层(BLL)
(1)RegisterManage.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Models;
namespace BLL
{
public class RegisterManager
{
public bool Register(Customer objCustomer)
{
//和数据库交互,判断当前用户名、Email是否已经被使用,
//如果没有被使用则直接注册
return false;
}
}
}
2、数据访问层(DAL)
(1)SQLHelper.cs
(2)RegisterService.cs
3、模型层(Models)
(1)User.cs
二、MVC
(1)控制器
(2)强类型视图
三、SQLServer2012
User.sql

9个回答

public class Employee
{
public string Id { get; private set; }
public string Name { get; private set; }
public string Gender { get; private set; }
public DateTime BirthDate { get; private set; }
public string Department { get; private set; }

public Employee(string id,string name,string gender,DateTime birthDate,string department)
{
    Id          = id;
    Name        = name;
    Gender      = gender;
    BirthDate   = birthDate;
    Department  = department;
}

}

public class EmployeeRespository
{
private static IList employees;

static EmployeeRespository()
{
    employees = new List<Employee>()
    {
        new Employee("001","张三","男",new DateTime(1981,8,24),"销售部"),
        new Employee("002","李四","男",new DateTime(1981,8,24),"人事部"),
        new Employee("003","王五","女",new DateTime(1981,8,24),"人事部")
    };
}

public IEnumerable<Employee> GetEmployees(string department = "")
{
    if (string.IsNullOrEmpty(department))
    {
        return employees;
    }
    return employees.Where(e => e.Department == department).ToArray();
}

}

public class EmployeePresenter
{
public IEmployeeView View { get; private set; }
public EmployeeRespository Respository { get; private set; }

public EmployeePresenter(IEmployeeView view)
{
    this.View = view;
    this.Respository = new EmployeeRespository();
    this.View.DepartmentSelected += OnDepartmentSelected;
}

public void Initialize()
{
    IEnumerable<Employee> employees = this.Respository.GetEmployees();
    this.View.BindEmployees(employees);
    string[] departments
        = new string[]{
            "","销售部","采购部","人事部"
        };
    this.View.BindDepartments(departments);
}

protected void OnDepartmentSelected(object sender, DepartmentSelectedEventArgs args)
{
    string department = args.Department;
    var employees = this.Respository.GetEmployees(department);
    this.View.BindEmployees(employees);
}

}

public interface IEmployeeView
{
void BindEmployees(IEnumerable employees);
void BindDepartments(IEnumerable departments);
event EventHandler DepartmentSelected;
}
public class DepartmentSelectedEventArgs : EventArgs
{
public string Department { get; private set; }
public DepartmentSelectedEventArgs(string department)
{
this.Department = department;
}
}

public partial class Default : Page, IEmployeeView
{
public EmployeePresenter Presenter { get; private set; }
public event EventHandler DepartmentSelected;

public Default()
{
    this.Presenter = new EmployeePresenter(this);
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.Presenter.Initialize();
    }
}

protected void ButtonSearch_Click(object sender, EventArgs e)
{
    string department = this.DropDownListDepartments.SelectedValue;
    DepartmentSelectedEventArgs eventArgs = new DepartmentSelectedEventArgs(department);
    if (null != DepartmentSelected)
    {
        DepartmentSelected(this, eventArgs);
    }
}

public void BindEmployees(IEnumerable<Employee> employees)
{
    this.GridViewEmployees.DataSource = employees;
    this.GridViewEmployees.DataBind();
}


public void BindDepartments(IEnumerable<string> departments)
{
    this.DropDownListDepartments.DataSource = departments;
    this.DropDownListDepartments.DataBind();
}

}

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebRegister.aspx.cs" Inherits="Register.WebRegister" %>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
  <style type="text/css">
    #mydiv
    {
        width:auto;height:auto;border:solid 1px red;
        position:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px;
        }
      .style1
      {
          width: 87px;
      }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="mydiv" >
        <table>
            <tr>
                <td colspan="2" align="center" >
                    <asp:Label ID="lblUserId" runat="server" Text=""></asp:Label>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    用户编号
                </td>
                <td>
                    <asp:TextBox ID="txtUserId" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    用户名
                </td>
                <td>
                    <asp:TextBox ID="txtUserName" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    密码
                </td>
                <td>
                    <asp:TextBox ID="txtPassword" runat="server" Height="19px" 
                        ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    姓名
                </td>
                <td>
                    <asp:TextBox ID="txtRealName" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    手机
                </td>
                <td>
                    <asp:TextBox ID="txtMobile" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
                        ErrorMessage="手机号码格式不正确" 
                        ValidationExpression="(\d3|\d{3}-)?\d{8}" 
                        ControlToValidate="txtMobile" ForeColor="Red" Font-Size="Small" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td>
                    部门
                </td>
                <td>
                    <asp:DropDownList ID="ddlDepartment" runat="server" AppendDataBoundItems="True" 
                        ValidationGroup="org">
                        <asp:ListItem Text="---请选择---" Value="0"></asp:ListItem>
                    </asp:DropDownList>      
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    地址
                </td>
                <td>
                    <asp:TextBox ID="txtAddress" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    身份证号
                </td>
                <td>
                    <asp:TextBox ID="txtIdCard" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
                        ControlToValidate="txtIdCard" ErrorMessage="身份证号码格式不正确" Font-Size="Small" 
                        ForeColor="Red" ValidationExpression="\d{17}[\d|X]|\d{15}" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td >
                    邮箱
                </td>
                <td >
                    <asp:TextBox ID="txtEmail" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1">
                    <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" 
                        ControlToValidate="txtEmail" ErrorMessage="邮箱格式不正确" Font-Size="Small" 
                        ForeColor="Red" 
                        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
                        ValidationGroup="org"></asp:RegularExpressionValidator>
                </td>
            </tr>
            <tr>
                <td>
                    是否结婚
                </td> 
                <td>
                  <asp:DropDownList ID="ddlMarry" runat="server" AppendDataBoundItems="True" 
                        ValidationGroup="org">
                      <asp:ListItem Text="---请选择---" Value="0"></asp:ListItem>
                      <asp:ListItem Value="true">是</asp:ListItem>
                      <asp:ListItem Value="false">否</asp:ListItem>
                </asp:DropDownList>

                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td>
                    籍贯
                </td>
                <td>
                    <asp:TextBox ID="txtCensusRegister" runat="server" ValidationGroup="org"></asp:TextBox>
                </td>
                <td class="style1"></td>
            </tr>
            <tr>
                <td align="center" colspan="2">
                    <asp:Button ID="btnSave" runat="server" Text="保存" OnClick="btnSave_Click" 
                        ValidationGroup="a" />   <asp:Label ID="lblinfo" runat="server" Text="" ForeColor="Red"></asp:Label>
                </td>
                <td class="style1"></td>
            </tr>
        </table>

    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

namespace Register
{
public partial class WebRegister : System.Web.UI.Page
{
string strcon = ConfigurationManager.ConnectionStrings["sqlserverStrcon"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadDepartment();
LoadUserId();
}
}

    private void LoadUserId()
    {
        SqlConnection conn = new SqlConnection(strcon);
        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = "SELECT UserId FROM T_User WHERE Id=(SELECT MAX(Id)FROM T_User)";
        lblUserId.Text = "最后一条记录Id为:" + cmd.ExecuteScalar().ToString();
        cmd.Dispose();
        conn.Dispose();
    }




    private void LoadDepartment()
    {
        Register.BLL.Department bdepartment = new BLL.Department();
        /*使用传统的DataSet结果集返回
        DataSet ds = bdepartment.GetList("");
        this.ddlDepartment.DataSource = ds.Tables[0];
         */
        //使用实体层来返回数据
        List<Register.Model.Department> modellist = bdepartment.GetModelList();
        this.ddlDepartment.DataSource = modellist;
        this.ddlDepartment.DataTextField = "Department_Name";
        this.ddlDepartment.DataValueField = "Department_Id";
        this.ddlDepartment.DataBind();
    }




    protected void btnSave_Click(object sender, EventArgs e)
    {
        Register.Model.T_User muserid = new Model.T_User();
        muserid.UserId = txtUserId.Text;
        Register.BLL.T_User buserid = new BLL.T_User();




        Register.Model.T_User musername=new Model.T_User();
        musername.UserName=txtUserName.Text;
        Register.BLL.T_User busername=new BLL.T_User();




        if (buserid.ValidatorUserId(muserid) == true)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "information", "<script type='text/javascript'>alert('该UserId已存在!');</script>");
            txtUserId.Text = "";
        }
        else if(busername.ValidatorUserName(musername)==true)
        {
            ClientScript.RegisterStartupScript(this.GetType(), "information", "<script type='text/javascript'>alert('该该用户名已存在!');</script>");
            txtUserName.Text = "";
        }
        else
        {
            Register.Model.T_User muser = new Model.T_User();
            muser.UserId = txtUserId.Text;
            muser.UserName = txtUserName.Text;
            muser.Password = txtPassword.Text;
            muser.RealName = txtRealName.Text;
            muser.Mobile = txtMobile.Text;
            muser.Department = ddlDepartment.SelectedValue;




            Register.BLL.T_User buser = new BLL.T_User();




            Register.Model.T_UserInfo mUserInfo = new Model.T_UserInfo();
            mUserInfo.UserId = txtUserId.Text;
            mUserInfo.T_Address = txtAddress.Text;
            mUserInfo.T_IdCard = txtIdCard.Text;
            mUserInfo.T_Email = txtEmail.Text;
            mUserInfo.T_IsMarry = Convert.ToBoolean(ddlMarry.SelectedValue);
            mUserInfo.T_CensusRegister = txtCensusRegister.Text;


            Register.BLL.T_UserInfo bUserInfo = new BLL.T_UserInfo();


            if (buser.Add(muser) > 0 && bUserInfo.Add(mUserInfo) > 0)
            {
                lblinfo.Text = "添加成功!";
            }
            else
            {
                lblinfo.Text = "添加失败!";
            }
        }




    }
}

}

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebLogin.aspx.cs" Inherits="Register.WebLogin" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




<br> #mydiv<br> {<br> width:300px;height:200px;border:solid 1px red;<br> position:absolute;top:50%;left:50%;margin-top:-100px;margin-left:-150px;<br> }<br>
















用户名:/asp:TextBox

密 码:/asp:TextBox






-----------WebLogin.aspx后台---------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Register
{
public partial class WebLogin : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

    }


    protected void btnLogin_Click(object sender, EventArgs e)
    {
        Register.Model.T_User muser = new Model.T_User();
        muser.UserName = txtUserName.Text;
        muser.Password = txtPassword.Text;
        Register.BLL.T_User btuser = new BLL.T_User();
        if (btuser.ValidatorUser(muser) == true)
        {
            Response.Write("登录成功!");
        }
        else
        {
            Response.Write("登录失败!");
        }
    }
}

}

using System;
namespace Register.Model
{
///
/// T_UserInfo:实体类(属性说明自动提取数据库字段的描述信息)
///
[Serializable]
public partial class T_UserInfo
{
public T_UserInfo()
{}
#region Model
private int _id;
private string _userid;
private string _t_address;
private string _t_idcard;
private string _t_email;
private bool _t_ismarry;
private string _t_censusregister;
///
///
///
public int Id
{
set{ _id=value;}
get{return _id;}
}
///
///
///
public string UserId
{
set{ _userid=value;}
get{return _userid;}
}
///
///
///
public string T_Address
{
set{ _t_address=value;}
get{return _t_address;}
}
///
///
///
public string T_IdCard
{
set{ _t_idcard=value;}
get{return _t_idcard;}
}
///
///
///
public string T_Email
{
set{ _t_email=value;}
get{return _t_email;}
}
///
///
///
public bool T_IsMarry
{
set{ _t_ismarry=value;}
get{return _t_ismarry;}
}
///
///
///
public string T_CensusRegister
{
set{ _t_censusregister=value;}
get{return _t_censusregister;}
}
#endregion Model

}
}

DbHelperSQL.cs:

using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.Common;
using System.Collections.Generic;
namespace Register.DataAccess
{
///
/// 数据访问抽象基础类
/// Copyright (C) Maticsoft
///
public abstract class DbHelperSQL
{
//数据库连接字符串(web.config来配置),多数据库可使用DbHelperSQLP来实现.
public static string connectionString = ConfigurationManager.ConnectionStrings["sqlserverStrcon"].ConnectionString;
public DbHelperSQL()
{

}

    #region 公用方法
    /// <summary>
    /// 判断是否存在某表的某个字段
    /// </summary>
    /// <param name="tableName">表名称</param>
    /// <param name="columnName">列名称</param>
    /// <returns>是否存在</returns>
    public static bool ColumnExists(string tableName, string columnName)
    {
        string sql = "select count(1) from syscolumns where [id]=object_id('" + tableName + "') and [name]='" + columnName + "'";
        object res = GetSingle(sql);
        if (res == null)
        {
            return false;
        }
        return Convert.ToInt32(res) > 0;
    }
    public static int GetMaxID(string FieldName, string TableName)
    {
        string strsql = "select max(" + FieldName + ")+1 from " + TableName;
        object obj = GetSingle(strsql);
        if (obj == null)
        {
            return 1;
        }
        else
        {
            return int.Parse(obj.ToString());
        }
    }
    public static bool Exists(string strSql)
    {
        object obj = GetSingle(strSql);
        int cmdresult;
        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
        {
            cmdresult = 0;
        }
        else
        {
            cmdresult = int.Parse(obj.ToString()); //也可能=0
        }
        if (cmdresult == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    /// <summary>
    /// 表是否存在
    /// </summary>
    /// <param name="TableName"></param>
    /// <returns></returns>
    public static bool TabExists(string TableName)
    {
        string strsql = "select count(*) from sysobjects where id = object_id(N'[" + TableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1";
        //string strsql = "SELECT count(*) FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[" + TableName + "]') AND type in (N'U')";
        object obj = GetSingle(strsql);
        int cmdresult;
        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
        {
            cmdresult = 0;
        }
        else
        {
            cmdresult = int.Parse(obj.ToString());
        }
        if (cmdresult == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    public static bool Exists(string strSql, params SqlParameter[] cmdParms)
    {
        object obj = GetSingle(strSql, cmdParms);
        int cmdresult;
        if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
        {
            cmdresult = 0;
        }
        else
        {
            cmdresult = int.Parse(obj.ToString());
        }
        if (cmdresult == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    #endregion
    /// <summary>
    /// 执行多条SQL语句,实现数据库事务。
    /// </summary>
    /// <param name="SQLStringList">多条SQL语句</param>

    public static int ExecuteSqlTran(List<String> SQLStringList)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            SqlTransaction tx = conn.BeginTransaction();
            cmd.Transaction = tx;
            try
            {
                int count = 0;
                for (int n = 0; n < SQLStringList.Count; n++)
                {
                    string strsql = SQLStringList[n];
                    if (strsql.Trim().Length > 1)
                    {
                        cmd.CommandText = strsql;
                        count += cmd.ExecuteNonQuery();
                    }
                }
                tx.Commit();
                return count;
            }
            catch
            {
                tx.Rollback();
                return 0;
            }
        }
    }
    /// <summary>
    /// 执行带一个存储过程参数的的SQL语句。
    /// </summary>
    /// <param name="SQLString">SQL语句</param>
    /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
    /// <returns>影响的记录数</returns>
    public static int ExecuteSql(string SQLString, string content)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand(SQLString, connection);
            System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
            myParameter.Value = content;
            cmd.Parameters.Add(myParameter);
            try
            {
                connection.Open();
                int rows = cmd.ExecuteNonQuery();
                return rows;
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                throw e;
            }
            finally
            {
                cmd.Dispose();
                connection.Close();
            }
        }
    }
    /// <summary>
    /// 执行带一个存储过程参数的的SQL语句。
    /// </summary>
    /// <param name="SQLString">SQL语句</param>
    /// <param name="content">参数内容,比如一个字段是格式复杂的文章,有特殊符号,可以通过这个方式添加</param>
    /// <returns>影响的记录数</returns>
    public static object ExecuteSqlGet(string SQLString, string content)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand(SQLString, connection);
            System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@content", SqlDbType.NText);
            myParameter.Value = content;
            cmd.Parameters.Add(myParameter);
            try
            {
                connection.Open();
                object obj = cmd.ExecuteScalar();
                if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                {
                    return null;
                }
                else
                {
                    return obj;
                }
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                throw e;
            }
            finally
            {
                cmd.Dispose();
                connection.Close();
            }
        }
    }
    /// <summary>
    /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)
    /// </summary>
    /// <param name="strSQL">SQL语句</param>
    /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>
    /// <returns>影响的记录数</returns>
    public static int ExecuteSqlInsertImg(string strSQL, byte[] fs)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand cmd = new SqlCommand(strSQL, connection);
            System.Data.SqlClient.SqlParameter myParameter = new System.Data.SqlClient.SqlParameter("@fs", SqlDbType.Image);
            myParameter.Value = fs;
            cmd.Parameters.Add(myParameter);
            try
            {
                connection.Open();
                int rows = cmd.ExecuteNonQuery();
                return rows;
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                throw e;
            }
            finally
            {
                cmd.Dispose();
                connection.Close();
            }
        }
    }




    /// <summary>
    /// 执行一条计算查询结果语句,返回查询结果(object)。
    /// </summary>
    /// <param name="SQLString">计算查询结果语句</param>
    /// <returns>查询结果(object)</returns>
    public static object GetSingle(string SQLString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand(SQLString, connection))
            {
                try
                {
                    connection.Open();
                    object obj = cmd.ExecuteScalar();
                    if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                    {
                        return null;
                    }
                    else
                    {
                        return obj;
                    }
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    connection.Close();
                    throw e;
                }
            }
        }
    }
    public static object GetSingle(string SQLString, int Times)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand(SQLString, connection))
            {
                try
                {
                    connection.Open();
                    cmd.CommandTimeout = Times;
                    object obj = cmd.ExecuteScalar();
                    if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))
                    {
                        return null;
                    }
                    else
                    {
                        return obj;
                    }
                }
                catch (System.Data.SqlClient.SqlException e)
                {
                    connection.Close();
                    throw e;
                }
            }
        }
    }
    /// <summary>
    /// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
    /// </summary>
    /// <param name="strSQL">查询语句</param>
    /// <returns>SqlDataReader</returns>
    public static SqlDataReader ExecuteReader(string strSQL)
    {
        SqlConnection connection = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand(strSQL, connection);
        try
        {
            connection.Open();
            SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return myReader;
        }
        catch (System.Data.SqlClient.SqlException e)
        {
            throw e;
        }   




    }
    /// <summary>
    /// 执行查询语句,返回DataSet
    /// </summary>
    /// <param name="SQLString">查询语句</param>
    /// <returns>DataSet</returns>
    public static DataSet Query(string SQLString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                command.Fill(ds, "ds");
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }
    public static DataSet Query(string SQLString, int Times)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            DataSet ds = new DataSet();
            try
            {
                connection.Open();
                SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                command.SelectCommand.CommandTimeout = Times;
                command.Fill(ds, "ds");
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception(ex.Message);
            }
            return ds;
        }
    }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
asp.net Mvc 连接Sql server

请问怎么连接数据库 并把查询到的数据显示到网页上 小白求个代码 谢谢各位大佬了

asp.net mvc4如何连接SQLServer数据库

就比如说我现在在SQLServer数据库中建好了一个名为A的数据库,A中有一个名为AB的表,表中有了一些数据。然后我又在解决方案中建了名为AB的模型和ABEntities的上下文,那我要怎么做才能让AB表中的数据在视图中显示出来呢?因为我是初学者,所以希望能给我比较详细的步骤,或是给我一个详细点的教程也好。

asp.net Mvc 怎么连接 sql server并在网页上显示 小白求附上代码

asp.net Mvc 怎么连接 sql server并在网页上显示 小白求附上代码

关于asp.net三层架构中数据集的问题

已经添加了一个数据集在app_code文件夹下面,在aspx.cs中可以完美使用(但是有警告),但是到aspx中却出现如图的错误,新人求解答![图片](https://img-ask.csdn.net/upload/201711/26/1511631917_234110.png)

请问一下asp.net mvc3怎么实现将上传的excel表格的数据导入sql server数据库?

现在有一个项目,是要求用户上传一个excel文件,系统后台实现将上传的数据写到数据库相应的表中~请大声多多指教

.net的三层架构在 .cs 页面的代码怎么进行增删改查啊?

.net的三层架构在 .cs 页面的代码怎么进行增删改查啊?最好可以给个实例代码!我自己看也可以!

ASP.Net Core 使用ADO.net 连接多个sqlserver数据库,应该怎么写?

ASP.Net Core 使用ADO.net 连接sqlserver数据库,应该怎么写?

三层架构设计的.net项目怎么发布,怎么配置iis

三层架构设计的.net项目怎么发布,怎么配置iis让其他人可以在浏览器上访问?提示找不到类型或命名空间名称“BLL_Article”(是否缺少using指令或程序集引用)。这到底怎么回事啊?![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/32.gif)

网站开发 - 技术迁移 PHP ---> ASP.NET MVC

各位前辈们给点意见吧。最近在接手一个项目,一个求职中介的网站,目前是在WORDPRESS PHP下运行的,经理觉得很多同类公司都是有自己的门户网站,于是有想转ASP.NET技术的想法,不知道是否可行?对于两种技术我都懂一点,不算很精通,ASP.NET会熟练一点,在大学里用的比较多。我已经初步拟定了一个技术文档,由于公司刚刚成立,资金和成本的受限,技术迁移到ASP.NET可能会设计很多花费(SERVER,IDE)。目前研究了下需求,不算特别的复杂,由于ASP.NET MVC的分层开发,我觉得比较直观,PHP似乎代码有点太乱,也有可能是我不熟悉的原因。ASP.NET也有不少CMS,但大多是比较贵的PACKAGE,且价格昂贵。目前找到最适合的是UMBRACO。近两天,研究UMBRACO觉得搭建的框架有点麻烦,我再去学时间成本挺高的。主要有以下几个问题: 1. 增加多的功能模块是保持原有PHP技术,在CMS下开发,还是迁移到ASP.NET 2. 如果选择ASP.NET,是运用CMS二次开发,还是从头开发 3. 一般开发一个功能不算复杂的网站,进度表大概要多久 (主要实体有 求职者,雇主,职位,中介) 比较迷茫,问题也比较多,希望有类似开发经验的大牛们指点指点,感激不尽

求助!!asp.net连接不上SQLServer数据库

conn.Open();语句提示:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错) (web.config 里面add name="DB" connectionString="server=.\SQLExpress;database=LiCai;uid=sa;pwd=123" SQLServer管理控制台的TCP/IP和named pipes均已启用,外围应用配置的服务已经启动,远程连接已经打开) 可能是哪里的问题呢?

ASP.NET MVC 怎么实现显示登录用用户名

我数据库用的是SQLserver2012 项目已经做好了 就剩下显示用户名了 可以的话我发源码给你帮我改下 还有些问题想问下ASP.NET的问题想问下 求大神解 可以加QQ和微信 谢谢

asp.net mvc怎样实现登录查看其它用户的公开信息的功能

就是,比如,我登录了,然后可以查看其它用户的公开信息,像csdn上查看某用户发表过什么博客这样的功能。另外还有该用户现在是否在线,给该用户留言这样的功能是应该怎么实现呢? 我最近在看asp.net mvc identity,但是好像只有关于一个用户登录的实现,而没有上述内容的实现?

新手求指导asp.net core(mvc)、mvc、ef框架这三者有什么区别

今天要学习asp.net core 这个技术,但是不知道怎么下手,有木有大神指点

ASP.NET MVC 事务回滚

ASP.NET MVC中如何事务回滚?有封装的特性(Attribute)吗?

.net 网站提交表单数据插入到sql server数据库

我按照网上一个网站样例,网页对数据库删除,查看,都没有问题,就是插入时提交一个表单。没反应,调试时有异常,查看变量发现那个表单的内容对应要插入数据库时都是null,好像是用什么json litjson

asp.net mvc5发布的网站(以文件发布),放到windows server 2012 r2的iis8上报错

asp.net mvc5发布的网站(以文件发布),放到windows server 2012 r2的iis8上报错,求解决办法。下面是报错内容: “/”应用程序中的服务器错误。 目录不存在。 参数名: directoryVirtualPath 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 目录不存在。 参数名: directoryVirtualPath 源错误: 执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 堆栈跟踪: [ArgumentException: 目录不存在。 参数名: directoryVirtualPath] System.Web.Optimization.Bundle.Include(String virtualPath, IItemTransform[] transforms) +136 XZJHome.BundleConfig.RegisterBundles(BundleCollection bundles) +898 XZJHome.MvcApplication.Application_Start() +345 [HttpException (0x80004005): 目录不存在。 参数名: directoryVirtualPath] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +12584905 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +175 System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475 [HttpException (0x80004005): 目录不存在。 参数名: directoryVirtualPath] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12601936 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12441597 版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.34009

asp.net mvc后台跨域请求

请问哪位大牛知道有什么方法能实现asp.net mvc后台跨域请求。前提是不能使用WCF或是webservice

asp.net mvc 用户注册时 异步发送邮件,如何实现?

asp.net mvc 用户注册时 异步发送邮件,如何实现?求详细 无误 代码 原来的思路是: 获取用户输入字段=》发送邮件=》注册成功。 但是同步发送smtp邮件需要等待好长时间,只好用异步发送邮件! 异步发送邮件时 , 在 用户 注册控制器action中执行异步发送邮件代码,报错,提示现在无法开始异步操作。 如图:![图片说明](https://img-ask.csdn.net/upload/201611/24/1479967407_903460.png)

WIN SERVER 2012 IIS8部署 ASP.NET MVC+WCF

WIN SERVER 2012 IIS8部署 ASP.NET MVC+WCF,我的程序部署后,每个画面 第一次访问响应时间过长,访问慢,但是再次打开同样的画面就很快了,预加载优化也 做了。现在也不知道是什么原因,谁能告诉我如何优化。

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

Linux命令学习神器!命令看不懂直接给你解释!

大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件不可能完成的任务。 一般情况下,我们学习一个命令时,要么直接百度去搜索它的用法,要么就直接用 man 命令去查看守冗长的帮助手册。这两个都可以实现我们的目标,但有没有更简便的方式呢? 答案是必须有的!今天给大家推荐一款有趣而实用学习神器 — kmdr,让你解锁 Linux 学习新姿势...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

史上最全的 python 基础知识汇总篇,没有比这再全面的了,建议收藏

网友们有福了,小编终于把基础篇的内容全部涉略了一遍,这是一篇关于基础知识的汇总的文章,请朋友们收下,不用客气,不过文章篇幅肯能会有点长,耐心阅读吧爬虫(七十)多进程multiproces...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

新一代神器STM32CubeMonitor介绍、下载、安装和使用教程

关注、星标公众号,不错过精彩内容作者:黄工公众号:strongerHuang最近ST官网悄悄新上线了一款比较强大的工具:STM32CubeMonitor V1.0.0。经过我研究和使用之...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

大学一路走来,学习互联网全靠这几个网站,最终拿下了一把offer

大佬原来都是这样炼成的

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你期望月薪4万,出门右拐,不送,这几个点,你也就是个初级的水平

先来看几个问题通过注解的方式注入依赖对象,介绍一下你知道的几种方式@Autowired和@Resource有何区别说一下@Autowired查找候选者的...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

立即提问
相关内容推荐