sqlserver 读取类

本文介绍了一个C#程序中实现数据库连接的方法,包括连接配置、数据集获取与更新等功能,并提供了用户登录验证的具体实现。

可以实现数据库自由连接,返回Dataset

using System;
using System.Data.SqlClient;
using System.Data;
namespace MySql
{
    public class mysql
    {
        private SqlDataAdapter myDataAdapter;
        DataSet ds;
        public static SqlConnection sqlConn;
       public static string user_name;
       public static bool sqlopen;
       public static int  _uaeradmin;
       public static string  _serverip;
        /// <summary>
        /// 数据库连接
        /// </summary>
        /// <param name="serverIP">服务器IP</param>
        /// <param name="userID">用户名</param>
        /// <param name="password">密码</param>
        /// <param name="dataBaseName">表名</param>
        public static bool  sqlinfo(string serverIP, string userID, string password, string dataBaseName)
        {
            /*
            string serverIP = @"localhost\SQLEXPRESS";//"127.0.0.1" = "localhost"               
            string userID = "sa";//访问数据库服务的用户名               
            string password = "mypass";//用户密码                
            string dataBaseName = "库存管理";//要访问的数据库名称 
             * */
            try
            {
                sqlConn = new SqlConnection("Server=" + serverIP + ";Uid=" + userID + ";Pwd=" + password + ";Database=" + dataBaseName);
                ServerIP = serverIP;
                return true;
            }
            catch (Exception)
            {
                return false;

            }
          


        }
        /// <summary>
        /// 返回或者设置当前登录用户
        /// </summary>
        public static string User_name   
        {
            get{return user_name;}
            
            set{user_name=value;}
        }
        /// <summary>
        /// 返回数据库是否连接
        /// </summary>
        public static bool SQLopen
        {
            get { return sqlopen; }

            set { sqlopen = value; }
        }
        /// <summary>
        /// 返回当前用户的操作权限
        /// </summary>
        public static int UserAdmin
        {
            get { return _uaeradmin; }
            set { _uaeradmin = value; }

        }
        /// <summary>
        /// 返回当前连接的IP
        /// </summary>
        public static string ServerIP
        {
            get { return _serverip; }
            set { _serverip = value; }

        }
        /// <summary>
        /// 返回一个DataSet
        /// </summary>
        /// <param name="sql">SQL命令</param>
        /// <param name="table">表名</param>
        /// <returns></returns>
        public DataSet GetDataSet(string sql, string table)
        {
             
                sqlConn.Open();
                myDataAdapter = new SqlDataAdapter(sql, sqlConn);
                ds = new DataSet();
                myDataAdapter.Fill(ds, table);
                sqlConn.Close();
                return ds;
           
        }
      
        /// <summary>
        /// 更新数据库
        /// </summary>
        /// <param name="ds">DataSet传递</param>
        /// <param name="table">表名</param>
        /// <returns></returns>
        public bool sqlupdata(DataSet ds, string table)
        {
               SqlCommandBuilder myCommandBuilder = new SqlCommandBuilder(myDataAdapter);
           

                // 生成Delete/Update/Insert操作的Command
                myDataAdapter.DeleteCommand = myCommandBuilder.GetDeleteCommand();
                myDataAdapter.UpdateCommand = myCommandBuilder.GetUpdateCommand();
                myDataAdapter.InsertCommand = myCommandBuilder.GetInsertCommand();
          
            try
            {
                // 保存到数据库
                myDataAdapter.Update(ds.Tables[table]);
                myCommandBuilder.Dispose();
                ds.Dispose();
                myDataAdapter.Dispose();

                return true;
            }
            catch (Exception )
            {
                myCommandBuilder.Dispose();
                ds.Dispose();
                myDataAdapter.Dispose();

                return false;
            }
        }
///一下可以实现用户登录
       
        public  bool userLogin(string user ,string password)
        {
            DataSet  userdt;
            string sql="select * from 用户管理 where '用户名'= '"+user+"' and  '密码'='"+password+"'";
            userdt = GetDataSet("select * from 用户管理 where convert(nvarchar(255),用户名)='" + user + "'and convert(nvarchar(255),密码)='" + password + "'", "用户管理");
           
            if (userdt.Tables[0].Rows.Count == 0)
            {
                return false;


            }
            else
            {
                User_name = userdt.Tables[0].Rows[0]["姓名"].ToString();
                SQLopen = true;
                _uaeradmin =Int32.Parse( userdt.Tables[0].Rows[0]["权限"].ToString().Trim());
                return true;

            }

                //"SELECT *  FROM `USER` WHERE `USER_NAME` = '" + textBox1.Text + "' AND `USER_PASSWORD` = '"
        }


    }
}


 

### 如何在 SQL Server读取 ArcGIS 数据 为了使 SQL Server 能够访问并处理来自 ArcGIS 的数据,通常需要通过特定的方式设置环境以及利用一些工具和技术来实现这一目标。 #### 注册地理数据库到 ArcGIS Server 当涉及到从 SQL Server 读取由 ArcGIS 创建或管理的数据时,第一步通常是确保该数据库已经正确注册到了 ArcGIS Server 站点。对于存储在 SQL Server 上的地理数据库而言,存在两种主要的注册方式[^1]。这一步骤至关重要,因为它允许 ArcGIS Server 认识到这些资源,并能有效地管理和提供基于 Web 的 GIS 功能和服务。 #### 使用 ST_Geometry 或者 geometry/geography SQL Server 支持多种空间数据型,其中最常用的是 `geometry` 和 `geography`。而 Esri 提供了一种名为 ST_Geometry 的自定义扩展用于更好地兼容其产品线中的几何对象表示法。因此,在某些情况下可能需要安装额外的支持包以便能够在 SQL Server 内部操作 ArcGIS 特定的空间特征。 一旦完成了上述准备工作之后: - **查询表结构**:可以通过标准 T-SQL 命令查看包含有空间列(如 Shape 字段)的相关表格信息。 ```sql SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName'; ``` - **执行空间查询**:假设有一个带有 geography 列 "Location" 的表,则可以编写如下简单的空间过滤语句获取位于指定范围内的记录。 ```sql DECLARE @point GEOGRAPHY; SET @point = GEOGRAPHY::STGeomFromText('POINT(-79.823456 43.25432)', 4326); SELECT * FROM YourSpatialTable WHERE Location.STDistance(@point) < 100; -- 单位为米 ``` 需要注意的是性能优化方面的问题也非常重要。例如合理设计磁盘布局以提升 I/O 效率就是其中一个关键因素之一[^2]。将频繁访问的数据文件放置于高性能存储介质之上能够显著改善整体系统的响应时间。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值