人生是一场不能存盘的RPG,我只能尽量多搞几个Screenshot

May 19, 2006

VS 的 Build Events

Filed under: Visual Studio

在vs2003 和2005中都支持了Build Events, 但是2003只支持单行的命令,而2005可以支持多行命令.

要想在2003中执行多行命令,只能把命令写在一个批处理文件中,然后通过调用批处理来执行.

1.在Solution explorer中用context meun查看project的property.

2.选择Build Events,可以看到Pre-build 和Post-build event command line,以及运行Post-build event 的条件

//——————————————————

用法收集

1.build完后修改build产物的名字(后缀),并覆盖已有的同名文件.

copy $(TargetFileName) $(TargetName).XXX y

2. 调用外部命令或批处理:

call "C:\Program Files\XXX.exe"

3. 条件判断:

IF NOT $(ConfigurationName) == Release GOTO end

    call "C:\Program Files\XXX.exe" $(ProjectDir)$(TargetName).cvp

:end

4.web project 自动部署

copy     $(TargetDir)*.*     \\MyServer\MyService\bin
copy     $(ProjectDir)*.ascx     \\MyServer\MyService

//——————————————————

Macro收集

$(DevEnvDir)

$(ProjectDir)

$(BuiltOuputPath)

$(ConfigurationName)

$(TargetName)  不含扩展名

$(TargetFileName)  包含扩展名

MSDN中的 Pre-build Event/Post-build Event Command Line Dialog Box 一节有所有的Macro

常用读取数据的方法

Filed under: SQL&DB Accessing

string connectionString = "";
string queryString = ""; 

//–使用dataset         
DataSet ds = new DataSet();
using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        connection.Open();
        SqlCommand command = new SqlCommand(queryString, connection);
        SqlDataAdapter da = new SqlDataAdapter(command);
        da.Fill(ds);
    }
    catch (Exception exp)
    {
        Console.WriteLine(exp.Message);
    }
}

//–使用Data reader
List<MyType> fields = new List<MyType>();

using (SqlConnection connection = new SqlConnection(connectionString))
{
    try
    {
        connection.Open();
        SqlCommand command = new SqlCommand(queryString, connection);
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            fields.Add(new MyType(name, type));
        }
    }
    catch (Exception exp)
    {
        Console.WriteLine(exp.Message);
    }
}

写SQL语句容易出错的地方

Filed under: SQL&DB Accessing

1.要注意from, where 附近的空格!

stirng sql = "SELECT COLUMN_NAME AS Name, " +
             "DATA_TYPE AS Type, " +
             "CHARACTER_MAXIMUM_LENGTH as Length " +
             "From INFORMATION_SCHEMA.COLUMNS " +
             "WHERE TABLE_NAME = ‘{0}’";

使用SQL语句得到数据库信息

Filed under: SQL&DB Accessing

先google了一下,找到了两篇文章.

Schema: How do I show all the primary keys in a database? http://www.aspfaq.com/show.asp?id=2244

Querying System Tables http://www.sqlservercentral.com/columnists/rVasant/queryingsystemtables.asp 

下面是用到的一些语句:

–To retrieve all the user created tables:
SELECT name FROM sysobjects WHERE xtype = U

–To get list of all the stored procedures:
SELECT name FROM sysobjects WHERE xtype=P

–To retrieve all the fields of table ‘XYZ’:
SELECT name FROM syscolumns WHERE ID = (SELECT id FROM sysobjects WHERE name=’XYZ’)

 

下面是一些更高级些的,会用到 INFORMATION_SCHEMA views(sql2000以上),查看sql server的online help会看到更多的view

–得到Customers表上的所有的主键的name, type, 长度, default value

SELECT K.COLUMN_NAME,
           C.DATA_TYPE,
           C.CHARACTER_MAXIMUM_LENGTH,
           C.COLUMN_DEFAULT 
  FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    OIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE K
     ON T.CONSTRAINT_NAME = K.CONSTRAINT_NAME 
   JOIN INFORMATION_SCHEMA.COLUMNS C
     ON C.Table_Name = T.TABLE_NAME
    AND C.COLUMN_NAME = K.COLUMN_NAME
WHERE T.CONSTRAINT_TYPE = ‘PRIMARY KEY’  AND T.TABLE_NAME = ‘Customers’

此外,How do I show all the primary keys in a database一文中的SQL的缩进格式也很值得学习

SELECT 
    T.TABLE_NAME, 
    T.CONSTRAINT_NAME, 
    K.COLUMN_NAME, 
    K.ORDINAL_POSITION 
FROM 
    INFORMATION_SCHEMA.TABLE_CONSTRAINTS T
    INNER JOIN
    INFORMATION_SCHEMA.KEY_COLUMN_USAGE K
    ON T.CONSTRAINT_NAME = K.CONSTRAINT_NAME 
WHERE
    T.CONSTRAINT_TYPE = ‘PRIMARY KEY’ 
    — AND T.TABLE_NAME = ‘table_name’
ORDER BY
    T.TABLE_NAME,
    K.ORDINAL_POSITION

.NET 2.0中的connection string

Filed under: SQL&DB Accessing

//——————————————-

    config 文件中的connection stirng

//——————————————-

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="MyDB" connectionString="Data Source=myServer;Initial Catalog=myDB;Integrated Security=True"                                            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

//——————————————-

    读取

//——————————————-

    string conn = ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString;
         






















Get free blog up and running in minutes with Blogsome
Theme designed by Hadley Wickham