----------------------
Windows Phone 7手机开发
、
.Net培训
、期待与您交流! ----------------------
//注入漏洞与参数化查询
拼接字符串容易造成注入漏洞,如:select count(*) from T_Users where UserName = '+username+' and Pwd = '+pwd+' 输入的时候输入:1' or '1'='1
结果为:"select count(*) from T_Users where UserName='admin' and Pwd='1' or '1'='1'"
//在同一个连接中,如果SqlDataReader没有关闭,那么是不能执行update之类的语句的。
//ComboBox用法:
1.ComboBox的显示值: Items.Add的参数是Object类型,也就是可以放任意数据类型的数据,可以设置DisplayMember属性设定显示的属性,通过SelectedItem属性取得到就是选择的条目对应的对象。
疑问:取出来的是Objct,怎么能转换为对应的类型?变量名知识“标签”。现实啊的值和实际的对象不一样,在ASP.NET中也有相同的东西。
把一个对象放到cbx里面默认显示的是该对象的ToString()方法。
要想显示某个名称,可以重写该类的string方法。例如:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return Name;
}
}
//访问数据库的三种方式:
1. SqlDataReader
2. DataSet
3. 强类型DataSet
//引用中的文件实际上是一些DLL文件,要想用一些类的时候要把该类的DLL文件(即:引用)添加到引用中。
//AttachDBFilename添加在VS中的数据库文件
三层架构中:在DAL层建立名为:DBSetting的类
public static string ConnectionString
{
get { return "Data Source=.;Initial Catalog=MarketingManagement;Integrated Security=True"; }
}
连接数据库语句:
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=数据库名;Integrated Security=True");
SqlCommand表示向服务器提交的一个命令(SQL语句等),
CommandText属性为要执行的SQL语句,ExecuteNonQuery方法执行一个非查询语句(Update、insert、Delete等)
ExecuteNonQuery返回值是执行的影响行数
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "insert into Books(BookNo,BookName,Price) values('001','C#','100')";
cmd.ExecuteNonQuery();//非查询语句
Console.WriteLine("插入成功!");
}
ExecuteReader执行有多行结果集
SqlCommand的 ExecuteScalar 方法用于只想能够查询,并返回查询所有返回的结果集中第一行的第一列,
因为不能确定返回值的类型,所以返回值是Object类型。
reader的GetString、GetInt32等方法只接受整数参数,也就是序号,
用GetOrdinal方法根据列名动态得到序号
cmd.CommandText = "select * from Users";
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//Console.WriteLine(reader.GetString(1));//得到第几列
Console.WriteLine(reader.GetString(reader.GetOrdinal("UserName")));
}
}
将连接字符串写在App.Config中:
1. 添加APP.config文件
2. 在App.config中添加connectionString段,添加一个add项,用name属性起一个名字(如DbConnStr),
connectionString属性指定连接字符串。
3. 添加引用 找到 Syetem.configuration。不是所有.NET中的类都能直接调用,类所在的Assembly要被
添加到项目的应用中才可以。
4. ConfigurationManager.ConnectionStrings["DbConnStr"].ConnectionString得到连接字符串。
//文件选择对话框FolderBrowserDialog
按照通配符搜索目录下的文件:
string[] files = Directory.GetFiles(string path,string searchPattern,SearchOption searchOption);
Path.GetFileNameWithoutExtension(filename),得到文件的文件名(不要扩展名);
Path.Combine(string path1,string path2),将两个路径合并
Path.GetExtension(string path),得到文件的后缀
Path.GetFileName(string path),得到文件的文件名
Path.GetFullPath(string path),得到文件的全路径
//读取数据:
数据量小的时候用:File.ReadAllLines() 把文件一次性加载到内存。经反编译得知ReadAllLines默认编码是:UTF-8
数据量大的时候用:StringReader
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------