ASP.NET在MVC模式下使用Ajax进行数据补全(带参数据查询)[简单的完整原码]

这个项目由前端页面index.html,MVC控制器HomeController.cs,MVC路由配置RouteConfig.cs,提前准备好的DBhelper.cs,以及临时的一个含有多个数据成员的类nameClass.cs。

数据库那边就自己提前写好,这里我用的是sqlserver,用其他的MySQL,Oracle啥的也差不多,控制器里面的sql语句基本是一样的。

jquery脚本我是直接添加的在线脚本压缩包,可以自行去网上下载完整的离线包也是可以的。


目录

index.html

HomeController.cs

RouteConfig.cs

nameClass.cs

DBhelper.cs



index.html

@{
    Layout = null;
}





    
    我的.NET
    
    


    

    HomeController.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using test1.Models;
    using System.Data.SqlClient;
    
    namespace test1.Controllers
    {
        public class HomeController : Controller
        {
            // GET: Home
            public ActionResult Index()
            {
                return View();
            }
    
            /// 
            /// 生成json字符串
            /// 
            /// 
            /// 
            public JsonResult get(string name)//创建一个get函数用于将getName函数返回的数据转换成json格式的字符串
            {
                //两种获取到网页上相应控件value的方法
                //Request["name"];
                //RouteData.Values["name"];
    
                JsonResult jr = new JsonResult();
    
                //使用type:"get"时使用JsonRequestBehavior.AllowGet来允许客户端使用http get请求
                //jr = Json(getName(name), JsonRequestBehavior.AllowGet);
    
                //使用type:"post"时则直接将字符串赋值即可
                jr.Data = getName(name);
                
                return jr;
            }
    
            /// 
            /// 数据库访问
            /// 
            /// 
            /// 
            private List getName(string name)
            {
                List list = new List();//list集合用来接收查询到的数据
                string sql = "select id,name from SN_DB where name like @name";//sql查询语句
                SqlParameter[] pa = { new SqlParameter ("@name",$"{name}%") };//sql语句中的变量
    
                using (SqlDataReader reader = DBhelper1.ExecuteReader(sql,pa))//查询多行多列的ExecuteReader函数
                {
                    while (reader.Read())//Read函数即是数据库的游标
                    {
                        nameClass na = new nameClass();//可以理解这里的nameClass类是一个结构体,用来存放带有多类型数据的数据表中的数据
                        na.id = (int)reader["id"];
                        na.name = reader["name"].ToString();
                        list.Add(na);
                    }
                }
                    return list;//将最终的查询结果保存好返回到函数
            }
        }
    }

    RouteConfig.cs

    按照系统自动生成的基本没怎么修改

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Routing;
    
    namespace test1
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }
    

    nameClass.cs

    这个具体根据自己数据库里的数据列去定义

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace test1.Models
    {
        public class nameClass
        {
            public int id { get; set; }
            public string name { get; set; }
        }
    }

    DBhelper.cs

    忘记是找的哪位大佬封装好的

    using System;
    using System.Web;
    using System.Data.SqlClient;
    using System.Data;
    using System.Configuration;
    
    namespace test1.Models
    {
        public class DBhelper1
        {
            private static string strConn = @"server = DESKTOP-LC5MIAI;uid=sa;pwd=1234;database=Database1";
            //private static string strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;
            private static SqlConnection conn = new SqlConnection(strConn);
            /// 
            /// 获取数据库连接对象
            /// 
    
            public static SqlConnection Conn
            {
                get
                {
                    return conn;
                }
            }
            /// 
            /// 打开连接
            /// 
            public static void ConnOpen()
            {
                if (conn.State == System.Data.ConnectionState.Closed)
                    conn.Open();
            }
            /// 
            /// 关闭连接
            /// 
            public static void ConnClose()
            {
                if (conn.State == System.Data.ConnectionState.Open)
                    conn.Close();
            }
            /// 
            /// 对数据进行增删查改
            /// 
            /// sql 语句
            /// 
            public static int ExecuteNonQuery(string strsql)
            {
                int i = 0;
                try
                {
                    SqlCommand comm = new SqlCommand();
                    comm.CommandText = strsql;//command需要执行的sql 语句
                    comm.Connection = conn;//连接对象
                    ConnOpen();//打开连接
                    i = comm.ExecuteNonQuery();//command方法,它的返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。当select操作时,返回-1
    
                }
                catch (Exception e)
                {
    
                }
                finally
                {
                    ConnClose();//执行完command之后 进行关闭
                }
                return i;
            }
            /// 
            /// 带参数进行增删查改
            /// 
            /// 
            /// 
            /// 
            public static int ExecuteNonQuery(string strsql, SqlParameter[] param)
            {
                int i = 0;
                try
                {
                    SqlCommand cmd = new SqlCommand(strsql, conn);
                    cmd.Parameters.AddRange(param);
                    ConnOpen();
                    i = cmd.ExecuteNonQuery();
                }
                catch (Exception e)
                {
    
                }
                finally
                {
                    ConnClose();
                }
                return i;
    
    
            }
    
            //带参数的查询
            public static SqlDataReader ExecuteReader(string strSql, params SqlParameter[] param)
            {
                SqlConnection connn = new SqlConnection(strConn);
                connn.Open();
                SqlCommand comm = new SqlCommand(strSql, connn);
                
                
                comm.Parameters.AddRange(param);
                return comm.ExecuteReader(CommandBehavior.CloseConnection);
    
            }
    
            /// 
            /// 查询是否有该数据
            /// 
            /// 数据操作的Sql语句
            /// 
            public static bool Exists(string strSql, SqlParameter[] param)
            {
                bool bReturn = false;
                try
                {
                    SqlCommand comm = new SqlCommand(strSql, conn);
                    comm.Parameters.AddRange(param);
                    ConnOpen();
                    bReturn = (int)comm.ExecuteScalar() > 0;
                }
                catch (Exception e)
                {
                }
                finally
                {
                    ConnClose();
                }
                return bReturn;
            }
            /// 
            /// 查询是否有该数据
            /// 
            /// 
            /// 
            /// 
            public static int ExecuteScalar(string sql, params SqlParameter[] param)
            {
                int i = 0;
                SqlCommand comm = new SqlCommand(sql, conn);
                comm.Parameters.AddRange(param);
                try
                {
                    ConnOpen();
                    i = Convert.ToInt32(comm.ExecuteScalar().ToString());
                }
                catch (Exception)
                {
    
                }
                finally
                {
                    comm.Dispose();
                }
                return i;
            }
    
            public static DataSet GetAll(string sql)
            {
                SqlDataAdapter da = new SqlDataAdapter(sql, conn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
    
            }
    
            public static DataSet GetAll(string sql, SqlParameter[] param)
            {
                SqlCommand comm = new SqlCommand(sql, conn);
                comm.Parameters.AddRange(param);
                SqlDataAdapter da = new SqlDataAdapter(comm);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds;
    
            }
            /// 
            /// dataset 存储过程进行数据修改
            /// 
            /// 
            /// 
            /// 
            public static DataSet ExcuteDatasetProc(string sql, params SqlParameter[] param)
            {
    
                SqlCommand comm = new SqlCommand(sql, conn);
                comm.Parameters.AddRange(param);
                comm.CommandType = System.Data.CommandType.StoredProcedure;
                ConnOpen();
                using (SqlDataAdapter da = new SqlDataAdapter(comm))
                {
                    DataSet ds = new DataSet();
                    da.Fill(ds);
                    comm.Parameters.Clear();
                    ConnClose();
                    return ds;
                }
    
            }
    
    
            /// 
            /// 操作存储过程
            /// 
            /// 数据操作的Sql语句
            /// 
            public static int ExecuteProcedure(string strSql, SqlParameter[] param)
            {
                int i = 0;
                try
                {
                    SqlCommand comm = new SqlCommand(strSql, conn);
                    comm.Parameters.AddRange(param);
                    comm.CommandType = System.Data.CommandType.StoredProcedure;
                    ConnOpen();
                    i = comm.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                }
                finally
                {
                    ConnClose();
                }
                return i;
            }
            /// 
            /// 执行存储过程查询数据
            /// 
            /// 存储过程名称
            /// 存储过程参数
            /// 
            public static SqlDataReader ExecuteDataReaderProcedure(string strSql, SqlParameter[] param)
            {
                SqlDataReader dr = null;
                try
                {
                    SqlCommand comm = new SqlCommand(strSql, conn);
                    comm.Parameters.AddRange(param);
                    comm.CommandType = System.Data.CommandType.StoredProcedure;
                    ConnOpen();
                    dr = comm.ExecuteReader();
                }
                catch (Exception e)
                {
                }
                finally
                {
                    //在阅读器没有读取数据前不能关闭数据库连接,否则将读取不到数据
                }
                return dr;
            }
    
        }
    }
    

     

    你可能感兴趣的:(ASP.NET)