------------------------------------------2345王牌技术员联盟、2345王牌技术员联盟、期待与您交流!-------------------------------------------
神奇的代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
连接数据首先你要跟数据库建立连接 然后就是执行指令,在执行指令之前 你要确定你要执行的是哪一种Sql语句.
1. SqlConnection 是用来连接数据库的
2. SqlCommand是用来执行指令的
3. SqlDataReader是读取数据库了的数据的
//创建连接
SqlConnection conn =new SqlConnection(@”Data Source=.\MSSQLSERVER2012;AttachDbFilename=E:\代码\我的第一个dmf\我的第一个dmf\Database1.mdf;Integrated Security=True;User Instance=True");
//.\MSSQLSERVER2012 .是连接到本机的意思
// MSSQLSERVER2012 是实例名
// Database1.mdf 是文件名
// @是转译字符
小技巧:光标指向 数据连接>文件名 右键属性 就可以得到连接字符串
创建好连接之后是打开连接: conn.Open();
创建 指令与Sql之间的关系: SqlCommand cnd=conn.CreateCommand()
Cnd.CommandText=” (在Sql中 需要执行的语句)”
要注意的是:在此之后 要记得加上以下语句之一 ,否则就会出错!
cnd.ExecuteNonQuery(); //非查询,对添加,修改,删除作用 返回受影响的行数
cnd.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行第一列,其他的忽略 , 返回值的类型是Object (int i = Convert.ToInt32(cnd.ExecuteScalar()); //想要什么类型 就定义什么类型来接收. 无法将隐形Object转换成int , 因此需要强制转换)
SqlDataReader reader = cnd.ExecuteReader() ; //读取数据库的数据
reader.Read 是bool类型 一般与if()while()一起使用, 意思前进到下一条记录 只要下面还有数据,就返回true ,否则false .
读数据库的数据 就是为了得到某个数据
reader.GetString(1) ;// 获取指定列(1)的字符串的值
reader.GetOrdinal("UserName"); //在给定名称(UserName)的情况下获取序列号
reader.GetString(reader.GetOrdinal("UserName"));//上面的综合
cnd.CommandText = "Insert into [User] (UserName,Password) values ('"+username+"','"+password+"')";
User是关键字, 必须用[]括起来 一般情况下表面用T_开头,字段用F开头, 那样就很少与关键字冲突 .
"+username+" 用双引号和加号括起来 表示username是vs中的某个变量, 若不用, 则表示username 是sql中的字符串.
close 与dispose using
conn.Close(); //close 关闭链接 关闭后还能打开
conn.Dispose();//dispose 摧毁连接 , 摧毁后必须重新建立连接才能打开
using作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
using作为语句,用于定义一个范围,在此范围的末尾将释放对象。
在出了作用域以后调用dispose,sqlconnection filesream等 dispose内部都会做这样的判断:判断有没有close,若没有close 就先close 再dispose.
1 'or ' 1 '= ' 1 在sql中不在是单纯的字符串
cnd.Parameters.Add(new SqlParameter("@P", password));
new SqlParameter:用参数名称和新 SqlParameter 的一个值初始化 SqlParameter 类的新实例。
@P类似占位符的东西
password是变量
cnd.Parameters.Add中Parameters 是获取password的意思, Add将指定的对象password添加到@P
在同一个链接中,如果 SqlDataReader没有关闭,那么是不能执行update之类的语句的. 可以把update写成一个方法 进行调用
控件
OpenFileDialog 显示一个对话框 , 提示用户打开文件
if (ofdImport.ShowDialog() != DialogResult.OK)
ofdImport是对话框的名字 , ShowDialog 运行对话框 , DialogResult 指定标示符以指示对话框的返回值 OK 对话框的返回值
FileStream fileStream = File.OpenRead(ofdImport.FileName)
FileStream 支持同步读写操作 也支持异步读写操作
fileStream 局部变量
File提供用于创建 复制 删除 移动和打开文件的静态方法
OpenRead 打开现有文件进行读取
ofdImport.FileName 获取或设置一个包含在文件对话框中选定的文件名的字符串
StreamReader streamReader = new StreamReader(fileStream)
StreamReader 读取字符串
streamReader 局部变量
FolderBrowserDialog dlg = new FolderBrowserDialog();
//FolderBrowserDialog 提示用户选择文件夹
dlg.ShowDialog()!=DialogResult.OK
dlg是对话框的名字 ShowDialog 运行对话框
DialogResult 指定标示符以指示对话框的返回值
OK 对话框的返回值
string path = dlg.SelectedPath;
SelectedPath 获取或设置用户选定的路径
string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
// Directory公开用于创建 移动和枚举通过目录和子目录的静态方法
GetFiles 返回目录中的文件
//path 是路径 *.txt是搜索到的文件格式
SearchOption是枚举 是否扫描子文件
AllDirectories取得所有文件
foreach (string file in files)//在files一个一个文件读取 并命名为 file
string 运营商 = Path.GetFileNameWithoutExtension(file);
//Path对包含文件或目录路径信息的实例执行操作
//GetFileNameWithoutExtension 返回不具有扩展名的指定路径字符串的文件名
string[] lines = File.ReadAllLines(file, Encoding.Default);
//不用StreamReader,因为文件很小,一次加载也占不了多少内存
//File 提供用于创建 复制 删除 移动和打开文件的静态方法
//Encoding 表示字符编码
Default获取操作系统当前ANSI代码页的编码
//ReadAllLines 打开一个文本文件 读取文件的所有行 然后关闭
//file 文件名
foreach (string line in lines) //在liness一行一行字符创读取 ,并命名为 file
string[] strs = line.Split('-');
string 开始号码 = strs[0];
string 结束号码 = strs[1];
string 市 = strs[2];
cnd.Parameters.Clear();//清空
cnd.Parameters.Add(new SqlParameter("StartNo", 开始号码));
cnd.Parameters.Add(new SqlParameter("EndNo", 结束号码));
cnd.Parameters.Add(new SqlParameter("Name", 运营商+市));
cnd.ExecuteNonQuery();//别忘记这句
cnd.Parameters.Clear();//参数不能重复添加,在while中一直用的就是一个SqlCommand对象
ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem;
//cmb省.SelectedItem 提取这个选项的内容 是object类型的 ProvinceTtem是一个类 也是一个类型
// ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem; 是把object类型强制转换成ProvinceTtem类型
object obj1 = item;
ProvinceTtem p2 = obj1;//把p2指向obj1指向的对象
ProvinceTtem p2 = (ProvinceTtem)obj1;*/ 把p2指向obj1指向的ProvinceTtem这个对象的类型
string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
//ConfigurationManager 提供客户端应用程序配置文件的访问
//ConnectionStrings 获取当前应用程序默认配置文件的数据 ConnStr 名字
//ConnectionString 获取或设置连接字符串
--------------------------------------------------- 2345王牌技术员联盟、 2345王牌技术员联盟、期待与您交流!---------------------------------------------------------
神奇的代码
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
连接数据首先你要跟数据库建立连接 然后就是执行指令,在执行指令之前 你要确定你要执行的是哪一种Sql语句.
1. SqlConnection 是用来连接数据库的
2. SqlCommand是用来执行指令的
3. SqlDataReader是读取数据库了的数据的
//创建连接
SqlConnection conn =new SqlConnection(@”Data Source=.\MSSQLSERVER2012;AttachDbFilename=E:\代码\我的第一个dmf\我的第一个dmf\Database1.mdf;Integrated Security=True;User Instance=True");
//.\MSSQLSERVER2012 .是连接到本机的意思
// MSSQLSERVER2012 是实例名
// Database1.mdf 是文件名
// @是转译字符
小技巧:光标指向 数据连接>文件名 右键属性 就可以得到连接字符串
创建好连接之后是打开连接: conn.Open();
创建 指令与Sql之间的关系: SqlCommand cnd=conn.CreateCommand()
Cnd.CommandText=” (在Sql中 需要执行的语句)”
要注意的是:在此之后 要记得加上以下语句之一 ,否则就会出错!
cnd.ExecuteNonQuery(); //非查询,对添加,修改,删除作用 返回受影响的行数
cnd.ExecuteScalar();//执行查询,并返回查询所返回的结果集中第一行第一列,其他的忽略 , 返回值的类型是Object (int i = Convert.ToInt32(cnd.ExecuteScalar()); //想要什么类型 就定义什么类型来接收. 无法将隐形Object转换成int , 因此需要强制转换)
SqlDataReader reader = cnd.ExecuteReader() ; //读取数据库的数据
reader.Read 是bool类型 一般与if()while()一起使用, 意思前进到下一条记录 只要下面还有数据,就返回true ,否则false .
读数据库的数据 就是为了得到某个数据
reader.GetString(1) ;// 获取指定列(1)的字符串的值
reader.GetOrdinal("UserName"); //在给定名称(UserName)的情况下获取序列号
reader.GetString(reader.GetOrdinal("UserName"));//上面的综合
cnd.CommandText = "Insert into [User] (UserName,Password) values ('"+username+"','"+password+"')";
User是关键字, 必须用[]括起来 一般情况下表面用T_开头,字段用F开头, 那样就很少与关键字冲突 .
"+username+" 用双引号和加号括起来 表示username是vs中的某个变量, 若不用, 则表示username 是sql中的字符串.
close 与dispose using
conn.Close(); //close 关闭链接 关闭后还能打开
conn.Dispose();//dispose 摧毁连接 , 摧毁后必须重新建立连接才能打开
using作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型。
using作为语句,用于定义一个范围,在此范围的末尾将释放对象。
在出了作用域以后调用dispose,sqlconnection filesream等 dispose内部都会做这样的判断:判断有没有close,若没有close 就先close 再dispose.
1 'or ' 1 '= ' 1 在sql中不在是单纯的字符串
cnd.Parameters.Add(new SqlParameter("@P", password));
new SqlParameter:用参数名称和新 SqlParameter 的一个值初始化 SqlParameter 类的新实例。
@P类似占位符的东西
password是变量
cnd.Parameters.Add中Parameters 是获取password的意思, Add将指定的对象password添加到@P
在同一个链接中,如果 SqlDataReader没有关闭,那么是不能执行update之类的语句的. 可以把update写成一个方法 进行调用
控件
OpenFileDialog 显示一个对话框 , 提示用户打开文件
if (ofdImport.ShowDialog() != DialogResult.OK)
ofdImport是对话框的名字 , ShowDialog 运行对话框 , DialogResult 指定标示符以指示对话框的返回值 OK 对话框的返回值
FileStream fileStream = File.OpenRead(ofdImport.FileName)
FileStream 支持同步读写操作 也支持异步读写操作
fileStream 局部变量
File提供用于创建 复制 删除 移动和打开文件的静态方法
OpenRead 打开现有文件进行读取
ofdImport.FileName 获取或设置一个包含在文件对话框中选定的文件名的字符串
StreamReader streamReader = new StreamReader(fileStream)
StreamReader 读取字符串
streamReader 局部变量
FolderBrowserDialog dlg = new FolderBrowserDialog();
//FolderBrowserDialog 提示用户选择文件夹
dlg.ShowDialog()!=DialogResult.OK
dlg是对话框的名字 ShowDialog 运行对话框
DialogResult 指定标示符以指示对话框的返回值
OK 对话框的返回值
string path = dlg.SelectedPath;
SelectedPath 获取或设置用户选定的路径
string[] files = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
// Directory公开用于创建 移动和枚举通过目录和子目录的静态方法
GetFiles 返回目录中的文件
//path 是路径 *.txt是搜索到的文件格式
SearchOption是枚举 是否扫描子文件
AllDirectories取得所有文件
foreach (string file in files)//在files一个一个文件读取 并命名为 file
string 运营商 = Path.GetFileNameWithoutExtension(file);
//Path对包含文件或目录路径信息的实例执行操作
//GetFileNameWithoutExtension 返回不具有扩展名的指定路径字符串的文件名
string[] lines = File.ReadAllLines(file, Encoding.Default);
//不用StreamReader,因为文件很小,一次加载也占不了多少内存
//File 提供用于创建 复制 删除 移动和打开文件的静态方法
//Encoding 表示字符编码
Default获取操作系统当前ANSI代码页的编码
//ReadAllLines 打开一个文本文件 读取文件的所有行 然后关闭
//file 文件名
foreach (string line in lines) //在liness一行一行字符创读取 ,并命名为 file
string[] strs = line.Split('-');
string 开始号码 = strs[0];
string 结束号码 = strs[1];
string 市 = strs[2];
cnd.Parameters.Clear();//清空
cnd.Parameters.Add(new SqlParameter("StartNo", 开始号码));
cnd.Parameters.Add(new SqlParameter("EndNo", 结束号码));
cnd.Parameters.Add(new SqlParameter("Name", 运营商+市));
cnd.ExecuteNonQuery();//别忘记这句
cnd.Parameters.Clear();//参数不能重复添加,在while中一直用的就是一个SqlCommand对象
ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem;
//cmb省.SelectedItem 提取这个选项的内容 是object类型的 ProvinceTtem是一个类 也是一个类型
// ProvinceTtem item = (ProvinceTtem)cmb省.SelectedItem; 是把object类型强制转换成ProvinceTtem类型
object obj1 = item;
ProvinceTtem p2 = obj1;//把p2指向obj1指向的对象
ProvinceTtem p2 = (ProvinceTtem)obj1;*/ 把p2指向obj1指向的ProvinceTtem这个对象的类型
string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
//ConfigurationManager 提供客户端应用程序配置文件的访问
//ConnectionStrings 获取当前应用程序默认配置文件的数据 ConnStr 名字
//ConnectionString 获取或设置连接字符串
--------------------------------------------------- 2345王牌技术员联盟、 2345王牌技术员联盟、期待与您交流!---------------------------------------------------------