• VS2019 连接数据库


    方法一:

    找到视图——SQLServer 对象资源管理器——添加数据库

    连接上即可

    然后找到你要用的数据库的属性里面的连接字符串

    接下来就可以操作数据库了

    class Test1
        {
            private string MySqlCon1 = "Data Source=localhost;Initial Catalog=SQLStudySimple;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
            private string MySqlCon2 = ConfigurationManager.ConnectionStrings["TestSQLServer"].ConnectionString;
            public DataTable ExcuteQuery(string sqlStr)
            {
                
               // SqlConnection con = new SqlConnection(@MySqlCon1);  //自定义连接对象
                SqlConnection con = new SqlConnection(@MySqlCon2);
                SqlCommand cmd = new SqlCommand();  //创建命令对象
                cmd.Connection = con;   //设置命令对象的数据库连接属性
                DataTable dt = new DataTable();
                try
                {
                    con.Open(); //打开数据库连接
                    Console.WriteLine("连接数据库成功!");
                    cmd.CommandType = CommandType.Text;
                    cmd.CommandText = sqlStr;
                    SqlDataAdapter msda = new SqlDataAdapter(cmd);
                    msda.Fill(dt);
                }
                catch (Exception e)
                {
                    Console.WriteLine("连接失败,失败原因:"+e.Message);
                }
                finally
                {
                    if (con.State == ConnectionState.Open)
                    {
                        con.Close();
                        Console.WriteLine("关闭成功");
                    }
                }
                
                return dt;
            }

    里面的MysqlCon 就是刚才的连接字符串

    碰到的问题:发现一开始没有指定数据库,Initial Catalog是这个参数没有加上,这个就是指定你要绑定的数据库。

    ConmmandType 中的参数问题

      Text:表示普通的SQL语句

      StoredProcedure:表示是存储过程

      TableDirect:我也没搞懂 :(

    上面还用了config去绑定,老朋友了。

    其实一开始的步骤存在问题,应该是视图——服务器资源管理,然后在这里面去连接绑定数据源,这里面的连接字符串更加简洁Data Source=localhost;Initial Catalog=SQLStudySimple;Integrated Security=True,就三个参数,第一个是数据源,第二个是数据库,第三个:true 在不知道用户名和密码的情况下就可以连接数据库,false 或者 不写 ,就一定要输入正确的登录名和密码。

    DataTable 是一个表结构,遍历:

                Test1 test1 = new Test1();
                string strSql = "SELECT * FROM table_Zomble";
                DataTable dt = test1.ExcuteQuery(strSql);
                for(int i = 0; i < dt.Rows.Count; i++)  //打印data,table
                {
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        Console.Write(dt.Rows[i][j].ToString()+"  ");
                    }
                    Console.WriteLine();
                }
                Console.ReadLine();

    方法二:

        class Test2
        {
            public void ConnectionSQLServer()
            {
                SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder();
                sb.DataSource = "localhost";
                sb.IntegratedSecurity = true;
                sb.InitialCatalog = "SQLStudySimple";
                SqlConnection con = new SqlConnection(sb.ToString());
                try
                {
                    con.Open();
                    string str = "select * from table_Zomble";
                    SqlCommand sc = new SqlCommand(str,con);
                    SqlDataReader sd = sc.ExecuteReader();
                    while (sd.Read())
                    {
                        Console.WriteLine(sd["zomble_name"].ToString());
                    }
                }catch(Exception e)
                {
                    Console.WriteLine("数据库连接失败,失败原因:"+e.Message);
                }
                finally
                {
                    if (con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                        Console.WriteLine("数据库连接关闭");
                    }
                }
            }
        }

    两种方法其实本质没差别。

    SqlDataReader这个对象理解不深,现在只知道可以将执行读取返回的数据放在里面,然后循环读出。

    以上都是查询操作,修改操作其实同理,只是SQL语句不同。第二个例子也可以将SQL查询语句作为参数传递,实现封装效果。

    中间改登录名密码登录,发现出错。参考:这里,解决。

    Mysql连接:

        class Test3
        {
            private string MySqlCon1 = "Server=localhost;Port=3306;Database=sqlstudysimple;Uid=root;Pwd=";
            public void ConnectionMySQL()
            {
                MySqlConnection con = new MySqlConnection(MySqlCon1);
                try
                {
                    con.Open();
                    Console.WriteLine("连接成功!");
                    string str = "select * from table_myplant";
                    MySqlCommand sc = new MySqlCommand(str, con);
                    MySqlDataReader sd = sc.ExecuteReader();
                    while (sd.Read())
                    {
                        Console.WriteLine(sd["plant_name"].ToString());
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("数据库连接失败,失败原因:" + e.Message);
                }
                finally
                {
                    if (con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                        Console.WriteLine("数据库连接关闭");
                    }
                }
            }
        }

    差别不大。

  • 相关阅读:
    jenkins:用jenkins通过ssh部署jar包到远程linux机器(jdk 15 / jenkins 2.257)
    linux(centos8):安装java jdk 15 (java 15)
    38. 外观数列 迭代
    58. 最后一个单词的长度
    kmp字符串匹配
    单词规律
    1502. 判断能否形成等差数列
    1496. 判断路径是否相交
    1475. 商品折扣后的最终价格
    一维数组的动态和
  • 原文地址:https://www.cnblogs.com/xunzf0402/p/16517438.html
Copyright © 2020-2023  润新知