Net连接mysql的公共Helper类MySqlHelper.cs带MySql.Data.dll下载

MySqlHelper.cs代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Data;
using System.Collections;
using MySql.Data.MySqlClient;
using MySql.Data.Types;
using System.Configuration;
using System.IO;
public abstract class MySqlHelper
{
//Get the database connectionstring, which are static variables and readonly, all project documents can be used directly, but can not modify it 
//the database connectionString 
//public static readonly string connectionStringManager = ConfigurationManager.ConnectionStrings["MYSQLConnectionString"].ConnectionString;
public static string ConnectionStringManager
{
get { return connectionStringManager; }
}
//This connectionString for the local test
public static readonly string connectionStringManager = System.Configuration.ConfigurationManager.AppSettings["MySQLConnString"];
//ConfigurationManager.ConnectionStrings["MySQLConnString"].ConnectionString;
//hashtable to store the parameter information, the hash table can store any type of argument 
//Here the hashtable is static types of static variables, since it is static, that is a definition of global use.
//All parameters are using this hash table, how to ensure that others in the change does not affect their time to read it
//Before ,the method can use the lock method to lock the table, does not allow others to modify.when it has readed then  unlocked table.
//Now .NET provides a HashTable's Synchronized methods to achieve the same function, no need to manually lock, completed directly by the system framework 
private static Hashtable parmCache = Hashtable.Synchronized(new Hashtable());
/// <summary>
/// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 
/// The parameter list using parameters that in array forms
/// </summary>
/// <remarks>
/// Usage example: 
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,
/// "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString">a valid database connectionstring</param>
/// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
/// <returns>Returns a value that means number of rows affected/returns>
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 
/// The parameter list using parameters that in array forms
/// </summary>
/// <remarks>
/// Usage example: 
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure,
/// "PublishOrders", new MySqlParameter("@prodid", 24));
/// </remarks>
/// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
/// <param name="connectionString">a valid database connectionstring</param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
/// <returns>Returns true or false </returns>
public static bool ExecuteNonQuery(CommandType cmdType, string connectionString, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
try
{
int val = cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
cmd.Parameters.Clear();
}
}
}
/// <summary>
/// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 
/// Array of form parameters using the parameter list 
/// </summary>
/// <param name="conn">connection</param>
/// <param name="cmdType">MySqlCommand command type (stored procedures, T-SQL statement, and so on.)</param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
/// <returns>Returns a value that means number of rows affected</returns>
public static int ExecuteNonQuery(MySqlConnection conn, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
/// <summary>
/// Execute a SqlCommand command that does not return value, by appointed and specified connectionstring 
/// Array of form parameters using the parameter list 
/// </summary>
/// <param name="conn">sql Connection that has transaction</param>
/// <param name="cmdType">SqlCommand command type (stored procedures, T-SQL statement, and so on.)</param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">MySqlCommand to provide an array of parameters used in the list</param>
/// <returns>Returns a value that means number of rows affected </returns>
public static int ExecuteNonQuery(MySqlTransaction trans, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
/// <summary>
/// Call method of sqldatareader to read data
/// </summary>
/// <param name="connectionString">connectionstring</param>
/// <param name="cmdType">command type, such as using stored procedures: CommandType.StoredProcedure</param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">parameters</param>
/// <returns>SqlDataReader type of data collection</returns>
public static MySqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
MySqlConnection conn = new MySqlConnection(connectionString);
// we use a try/catch here because if the method throws an exception we want to 
// close the connection throw code, because no datareader will exist, hence the 
// commandBehaviour.CloseConnection will not work
try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
MySqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
}
/// <summary>
/// use the ExectueScalar to read a single result
/// </summary>
/// <param name="connectionString">connectionstring</param>
/// <param name="cmdType">command type, such as using stored procedures: CommandType.StoredProcedure</param>
/// <param name="cmdText">stored procedure name or T-SQL statement</param>
/// <param name="commandParameters">parameters</param>
/// <returns>a value in object type</returns>
public static object ExecuteScalar(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}
public static DataSet GetDataSet(string connectionString, string cmdText, params MySqlParameter[] commandParameters)
{
DataSet retSet = new DataSet();
using (MySqlDataAdapter msda = new MySqlDataAdapter(cmdText, connectionString))
{
msda.Fill(retSet);
}
return retSet;
}
/// <summary>
/// cache the parameters in the HashTable
/// </summary>
/// <param name="cacheKey">hashtable key name</param>
/// <param name="commandParameters">the parameters that need to cached</param>
public static void CacheParameters(string cacheKey, params MySqlParameter[] commandParameters)
{
parmCache[cacheKey] = commandParameters;
}
/// <summary>
/// get parameters in hashtable by cacheKey
/// </summary>
/// <param name="cacheKey">hashtable key name</param>
/// <returns>the parameters</returns>
public static MySqlParameter[] GetCachedParameters(string cacheKey)
{
MySqlParameter[] cachedParms = (MySqlParameter[])parmCache[cacheKey];
if (cachedParms == null)
return null;
MySqlParameter[] clonedParms = new MySqlParameter[cachedParms.Length];
for (int i = 0, j = cachedParms.Length; i < j; i++)
clonedParms[i] = (MySqlParameter)((ICloneable)cachedParms[i]).Clone();
return clonedParms;
}
/// <summary>
///Prepare parameters for the implementation of the command
/// </summary>
/// <param name="cmd">mySqlCommand command</param>
/// <param name="conn">database connection that is existing</param>
/// <param name="trans">database transaction processing </param>
/// <param name="cmdType">SqlCommand command type (stored procedures, T-SQL statement, and so on.) </param>
/// <param name="cmdText">Command text, T-SQL statements such as Select * from Products</param>
/// <param name="cmdParms">return the command that has parameters</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
#region parameters
/// <summary>
/// Set parameters
/// </summary>
/// <param name="ParamName">parameter name</param>
/// <param name="DbType">data type</param>
/// <param name="Size">type size</param>
/// <param name="Direction">input or output</param>
/// <param name="Value">set the value</param>
/// <returns>Return parameters that has been assigned</returns>
public static MySqlParameter CreateParam(string ParamName, MySqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
MySqlParameter param;
if (Size > 0)
{
param = new MySqlParameter(ParamName, DbType, Size);
}
else
{
param = new MySqlParameter(ParamName, DbType);
}
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
}
return param;
}
/// <summary>
/// set Input parameters
/// </summary>
/// <param name="ParamName">parameter names, such as:@ id </param>
/// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
/// <param name="Size">size parameters, such as: the length of character type for the 100</param>
/// <param name="Value">parameter value to be assigned</param>
/// <returns>Parameters</returns>
public static MySqlParameter CreateInParam(string ParamName, MySqlDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// Output parameters 
/// </summary>
/// <param name="ParamName">parameter names, such as:@ id</param>
/// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
/// <param name="Size">size parameters, such as: the length of character type for the 100</param>
/// <param name="Value">parameter value to be assigned</param>
/// <returns>Parameters</returns>
public static MySqlParameter CreateOutParam(string ParamName, MySqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
/// <summary>
/// Set return parameter value 
/// </summary>
/// <param name="ParamName">parameter names, such as:@ id</param>
/// <param name="DbType">parameter types, such as: MySqlDbType.Int</param>
/// <param name="Size">size parameters, such as: the length of character type for the 100</param>
/// <param name="Value">parameter value to be assigned<</param>
/// <returns>Parameters</returns>
public static MySqlParameter CreateReturnParam(string ParamName, MySqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
/// <summary>
/// Generate paging storedProcedure parameters
/// </summary>
/// <param name="CurrentIndex">CurrentPageIndex</param>
/// <param name="PageSize">pageSize</param>
/// <param name="WhereSql">query Condition</param>
/// <param name="TableName">tableName</param>
/// <param name="Columns">columns to query</param>
/// <param name="Sort">sort</param>
/// <returns>MySqlParameter collection</returns>
public static MySqlParameter[] GetPageParm(int CurrentIndex, int PageSize, string WhereSql, string TableName, string Columns, Hashtable Sort)
{
MySqlParameter[] parm = { 
MySqlHelper.CreateInParam("@CurrentIndex",  MySqlDbType.Int32,      4,      CurrentIndex    ),
MySqlHelper.CreateInParam("@PageSize",      MySqlDbType.Int32,      4,      PageSize        ),
MySqlHelper.CreateInParam("@WhereSql",      MySqlDbType.VarChar,  2500,    WhereSql        ),
MySqlHelper.CreateInParam("@TableName",     MySqlDbType.VarChar,  20,     TableName       ),
MySqlHelper.CreateInParam("@Column",        MySqlDbType.VarChar,  2500,    Columns         ),
MySqlHelper.CreateInParam("@Sort",          MySqlDbType.VarChar,  50,     GetSort(Sort)   ),
MySqlHelper.CreateOutParam("@RecordCount",  MySqlDbType.Int32,      4                       )
};
return parm;
}
/// <summary>
/// Statistics data that in table
/// </summary>
/// <param name="TableName">table name</param>
/// <param name="Columns">Statistics column</param>
/// <param name="WhereSql">conditions</param>
/// <returns>Set of parameters</returns>
public static MySqlParameter[] GetCountParm(string TableName, string Columns, string WhereSql)
{
MySqlParameter[] parm = { 
MySqlHelper.CreateInParam("@TableName",     MySqlDbType.VarChar,  20,     TableName       ),
MySqlHelper.CreateInParam("@CountColumn",  MySqlDbType.VarChar,  20,     Columns         ),
MySqlHelper.CreateInParam("@WhereSql",      MySqlDbType.VarChar,  250,    WhereSql        ),
MySqlHelper.CreateOutParam("@RecordCount",  MySqlDbType.Int32,      4                       )
};
return parm;
}
/// <summary>
/// Get the sql that is Sorted 
/// </summary>
/// <param name="sort"> sort column and values</param>
/// <returns>SQL sort string</returns>
private static string GetSort(Hashtable sort)
{
string str = "";
int i = 0;
if (sort != null && sort.Count > 0)
{
foreach (DictionaryEntry de in sort)
{
i++;
str += de.Key + " " + de.Value;
if (i != sort.Count)
{
str += ",";
}
}
}
return str;
}
/// <summary>
/// execute a trascation include one or more sql sentence(author:donne yin)
/// </summary>
/// <param name="connectionString"></param>
/// <param name="cmdType"></param>
/// <param name="cmdTexts"></param>
/// <param name="commandParameters"></param>
/// <returns>execute trascation result(success: true | fail: false)</returns>
public static bool ExecuteTransaction(string connectionString, CommandType cmdType, string[] cmdTexts, params MySqlParameter[][] commandParameters)
{
MySqlConnection myConnection = new MySqlConnection(connectionString);       //get the connection object
myConnection.Open();                                                        //open the connection
MySqlTransaction myTrans = myConnection.BeginTransaction();                 //begin a trascation
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = myConnection;
cmd.Transaction = myTrans;
try
{
for (int i = 0; i < cmdTexts.Length; i++)
{
PrepareCommand(cmd, myConnection, null, cmdType, cmdTexts[i], commandParameters[i]);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
myTrans.Commit();
}
catch
{
myTrans.Rollback();
return false;
}
finally
{
myConnection.Close();
}
return true;
}
#endregion
}

 

添加代码:

// add
MySqlCommand sqlcom = new MySqlCommand();
sqlcom.CommandText = "INSERT INTO `tb_baobei` (`tb_Name`,`tb_Price`,`tb_Image`,`tb_Url`)" +
" VALUES(@tb_Name,@tb_Price,@tb_Image,@tb_Url);";
MySqlParameter[] commandParameters = new MySqlParameter[]{
new MySqlParameter("@tb_Name",bb.Name),
new MySqlParameter("@tb_Price",bb.Price.Trim()),
new MySqlParameter("@tb_Image",bb.Image),
new MySqlParameter("@tb_Url",bb.Url)
};
MySqlHelper.ExecuteNonQuery(CommandType.Text, MySqlHelper.ConnectionStringManager, sqlcom.CommandText, commandParameters);

 

查询代码:

public string Login(string email,string password){
MySqlCommand sqlcom = new MySqlCommand();
sqlcom.CommandText = "select * from common_members where email =@email";
MySqlParameter commandParameters = new MySqlParameter("@email", email);
MySqlDataReader reader = MYSQLHelper.ExecuteReader(MYSQLHelper.ConnectionStringManager, CommandType.Text, sqlcom.CommandText, commandParameters);
if (reader.Read() == true)
{
string pwd = reader["password"].ToString();
if (pwd.Equals(password))
{
return "1";
}else
{
return "0";
}
}
else
{
return "-1";
}
}

 

配置文件:

<add key="MySQLConnString" value="Server=localhost;Database=test1;Uid=test;Pwd=test;pooling=false;charset=utf8" />

 

MySqlHelper.cs和MySqlHelper.cs下载地址:http://pan.baidu.com/s/1jGBNq2E

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有史以来最详细 安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题)

安装部署Kubernetes Dashboard (补充解决官方出现的一些RBAC CERT等问题) 官方文档&#xff1a;https://github.com/kubernetes/dashboard 参考文章&#xff1a;https://kuboard.cn/install/install-k8s-dashboard.html# 前言 Kubernetes Dashboard 是 Kubernetes 的官方 W…

技术者的好奇心和惯性

这回老孙讲讲好奇心。本杰明富兰克林&#xff0c;十八世纪美国最伟大的科学家和发明家&#xff0c;著名的政治家、外交家、哲学家、文学家和航海家以及美国独立战争的伟大领袖。有人称其为“资本主义精神最完美的代表”。富兰克林这个人或许衬不上这等称誉&#xff0c;但绝对是…

2s相机 android6,Android Camera2 使用总结

最近在做自定义相机相关的项目&#xff0c;网上查了资料都是有关android.hardware.Camera的资料&#xff0c;开始使用的才发现这个类已经废弃了。Android 5.0(21)之后android.hardware.Camera就被废弃了&#xff0c;取而代之的是全新的android.hardware.Camera2 。Android 5.0对…

简单的小工具wordlight——让VS变量高亮起来

前段时间一直在使用matlab&#xff0c;今天需要使用vs2008&#xff0c;而用惯了matlab&#xff0c;习惯了其中一项选中变量高亮的设置&#xff0c;突然回来使用VS&#xff0c;感到各种不适应&#xff0c;顿时想到了一个词&#xff1a;矫情 呵呵&#xff0c;于是在网上找各种插…

CentOS 7上搭建Spark3.0.1+ Hadoop3.2.1分布式集群

CentOS 7上搭建Spark3.0.1 Hadoop3.2.1分布式集群 VMWare 安装CentOS 7使用Xshell连接虚拟机集群设置安装JDK 1.8SSH 免密登陆安装hadoop 3.2安装Spark 3.0.1总结VMWare 安装CentOS 7 推荐使用VMware Workstation Pro 16&#xff0c;下载安装即可。下载最新的CentOS 7 Minimal…

微软的SQLHelper类(含完整中文注释)

using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collections; namespace Book.DAL { /// <summary> /// SqlServer数据访问帮助类 /// </summary> public sealed class SqlHelper { #region 私有构造函数和方法 p…

再见安卓 你好鸿蒙,安卓,再见!你好,鸿蒙系统!

今年9月份&#xff0c;华为宣布鸿蒙OS操作系统将面向手机发布&#xff0c;今年12月份正式开放开发者Beta版本。昨天&#xff0c;华为鸿蒙OS迎来里程碑式的新进展&#xff0c;开发者Beta版本如约而至&#xff0c;正式开启线上公测招募&#xff0c;我们也可以可以一睹鸿蒙系统真容…

Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)

目录[-] . 一、Ingress 介绍. 二、Traefik 介绍. 三、部署 Ingress 控制器 Traefik. 1、Traefik 两种部署方式介绍. 2、创建 Traefik 配置文件. 3、将 Traefik 配置文件挂载到 ConfigMap. 4、设置 CA 证书. 5、给节点设置 Label. 6、创建 Traefik 服务账户与角色权限. 7、创建…

Android (cocos2dx 网络访问)访问权限设置

Android开发应用程序时&#xff0c;如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码: 同样的如果用到其它的权限&#xff0c;也需要作出声明,部分权限列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES 允许读写访问”properties”表在 checki…

获取页面所有属性并生成html6,JavaScript基础练习题(三)

一、单选题1.以下关于Javascript中事件的描述中&#xff0c;不正确的是A click——鼠标单击事件B focus——获取焦点事件C mouseover——鼠标指针移动到事件源对象上时触发的事件D change——选择字段时触发的事件正确答案: D解析:change事件为input内容发生改变时触发的事件。…

Git本地缓存问题 修改密码后git无法拉取

Git本地缓存问题 修改密码后git无法拉取 问题描述&#xff1a;使用正确的用户名和密码可以登录到Git代码仓库&#xff0c;但是在本地无法使用Git bash命令行的方式拉取代码。 问题原因&#xff1a;第一次使用Git bash方式拉取代码时&#xff0c;会根据当前的用户和密码生成一串…

Ext.Net常用方法

1、js&#xff08;Ext&#xff09;操作 Ext.Msg.alert(系统提示, 未连接血站&#xff0c;该功能暂时不能使用。); Ext.getCmp("id").getValue();Ext.getCmp("id").focus();Ext.getCmp("id").selectText(); //选中修改 if (!GridPanel1.hasSelec…

表单 单击怪异事件

<input class"big" name"gohome" type"button" id"gohome" value"回到主页" οnclick"gohome()" /> 如果上面的name、ID属性跟后面的单击事件所调用的函数名一样。则无效&#xff01;&#xff01;&#xff…

Pytorch 版YOLOV5训练自己的数据集

1、环境搭建 https://github.com/ultralytics/yolov5 2、安装需要的软件 pip install -U -r requirements.txt 3、准备数据 在data文件下建立上面三个文件&#xff08;Annotations、images与ImageSets&#xff0c;labels后续我们脚本生成&#xff09;其中Annotations存放xml…

使用SQL Server作业设置定时任务

1.开启SQL Server Agent服务 使用作业需要SQL Agent服务的支持&#xff0c;并且需要设置为自动启动&#xff0c;否则你的作业不会被执行。 以下步骤开启服务:开始-->>>运行-->>>输入"services.msc"-->>>进入服务,开启SQL Server Agent服…

ListView与GridView优化

前言 ListView是Android中最常用的控件&#xff0c;通过适配器来进行数据适配然后显示出来&#xff0c;而其性能是个很值得研究的话题。本文与你一起探讨Google I/O提供的优化Adapter方案&#xff0c;欢迎大家交流。 声明 欢迎转载&#xff0c;但请保留文章原始出处:) 博客园&…

2021安徽舒城中学高考成绩查询,2021安徽省地区高考成绩排名查询,安徽省高考各高中成绩喜报榜单...

怀宁中学芜湖2017年芜湖市高考文科头名是来自于芜湖师大附中的唐逸云&#xff0c;高考成绩653分。2017年芜湖市高考理科头名是来自于芜湖师大附中的茅志鹏&#xff0c;高考成绩676分。师大附中芜湖一中淮南淮南二中文科考生最高分631(市应届生第一名)&#xff0c;理科考生最高分…

CentOS7挂载nfs盘快速指南

A服务器做服务端&#xff1a; 1、安装nfs相关软件&#xff0c;实际上是基于rpc协议的 yum install -y nfs-utils rpcbind2、设置共享目录 mkdir -p /data/vi /etc/exports/data 192.168.139.71(rw,async,no_root_squash)#rw(来访者的权限&#xff0c;rw表示可读写&#xff0…

带毫秒的字符转换成时间(DateTime)格式的通用方法

C#自身有更好的方式&#xff0c;Net任意String格式转换为DateTime类型 原文 好久没更新日志了&#xff0c;添加个方法吧&#xff0c;本身没有什么技术可言&#xff0c;为了能方便大家&#xff0c;我稍微整理一下咯~ 带毫秒的字符转换成时间&#xff08;DateTime&#xff09…