根据提供的信息,我们可以总结出以下有关SQL的知识点:
### SQL知识点概述
#### 一、数据库表字段操作
1. **添加字段**:
```sql
ALTER TABLE dbo.project ADD p_pone nvarchar(50);
```
- **解释**:此语句用于向名为`project`的表中添加一个新字段`p_pone`,该字段的数据类型为`nvarchar`且长度为50。
2. **删除字段**:
```sql
ALTER TABLE table_NAME DROP COLUMN column_NAME;
```
- **解释**:此语句用于从指定表`table_NAME`中删除名为`column_NAME`的字段。
3. **修改字段**:
```sql
ALTER TABLE table_name ALTER COLUMN column_name new_data_type;
```
- **解释**:此语句用于修改表`table_name`中的`column_name`字段的数据类型为`new_data_type`。
#### 二、查询操作
1. **内连接查询**(Inner Join):
```sql
SELECT * FROM dbo.New_Types, dbo.news WHERE s.Id = e.Id;
SELECT n.Id, n.Title, n.Body, t.Name FROM dbo.news n INNER JOIN dbo.New_Type t ON (n.Id = t.Id);
```
- **解释**:第一个查询语句使用了逗号语法实现两个表之间的内连接,并通过`WHERE`子句来指定连接条件。第二个查询语句则使用了标准的`INNER JOIN`语法,更加直观地指定了连接方式和连接条件。
2. **左连接查询**(Left Join)与右连接查询(Right Join)未在示例中给出,但可以参照内连接的方式进行编写。
3. **子查询**:
```sql
SELECT * FROM dbo.news n WHERE n.Id IN (SELECT t.id FROM dbo.New_Type t WHERE t.Id = '1');
```
- **解释**:此查询语句先执行内部子查询`(SELECT t.id FROM dbo.New_Type t WHERE t.Id = '1')`得到符合条件的ID列表,然后将这些ID作为外部查询`SELECT * FROM dbo.news n WHERE n.Id IN (...)`的条件,筛选出符合条件的记录。
4. **多条件查询**:
```sql
SELECT TOP 5 * FROM dbo.village v WHERE v.V_picture <> '' ORDER BY v.v_id DESC;
```
- **解释**:此查询语句选择前5条记录,其中`v.V_picture <> ''`表示筛选出图片非空的记录,`ORDER BY v.v_id DESC`则按`v_id`降序排列。
5. **聚合函数**:
```sql
SELECT SUM(CAST(S_Expenditure AS int)) S_Expenditure FROM dbo.F_Expenditure WHERE Time BETWEEN '2012-03-31' AND '2012-03-31';
```
- **解释**:此查询语句计算`F_Expenditure`表中指定日期范围内的总支出。使用`CAST`函数将`S_Expenditure`字段转换为整型再进行求和。
### 应用配置及页面跳转知识点
#### 一、应用配置文件设置
```xml
<appSettings>
<add key="Sql" value="server=(local);database=gbook;uid=sa;pwd=123456"/>
</appSettings>
```
- **解释**:此XML片段展示了如何在.NET应用配置文件中设置数据库连接字符串。其中`server=(local)`表示服务器地址为本地,`database=gbook`指定数据库名为`gbook`,`uid=sa`和`pwd=123456`分别表示用户名和密码。
#### 二、页面跳转及参数传递
1. **页面重定向**:
```csharp
Response.Redirect("listPolicy.aspx?lb=1");
```
- **解释**:此C#代码片段实现了页面重定向到`listPolicy.aspx`页面,并通过URL参数`lb=1`传递数据。
2. **获取查询字符串**:
```csharp
lb = Request.QueryString["lb"].ToString().Trim();
```
- **解释**:此C#代码片段用于从URL中获取名为`lb`的查询字符串值,并去除首尾空白字符。
3. **会话管理**:
```csharp
Session["username"] = TextBox1.Text.ToString().Trim();
<%= Session["username"].ToString().Trim() %>
```
- **解释**:第一行代码用于设置会话变量`username`,其值为文本框`TextBox1`中的内容;第二行代码则用于在Web页面中显示会话变量`username`的值。
4. **超链接参数传递**:
```html
<a href='delid.aspx?delid=<%# DataBinder.Eval(Container.DataItem, "id") %> & tablename=facility & npage=zs_facilitylist.aspx' onclick="return confirm('确认要删除吗?')">删除</a>
```
- **解释**:此HTML代码片段展示了如何在超链接中传递多个参数,包括动态获取的`id`值以及静态指定的表名和页面名等。
### 其他知识点
#### 一、条件构建
```csharp
if (this.MyClassName.Text.Trim() != "")
{
filter += " and t.class_name like '%" + this.MyClassName.Text.Trim() + "%'";
}
```
- **解释**:此C#代码片段用于根据`MyClassName`控件的文本值构建SQL查询条件。如果`MyClassName`不为空,则追加相应的模糊匹配条件。
#### 二、下拉列表绑定
```csharp
DropDownList.SelectedValue = "xiao";
```
- **解释**:此C#代码片段用于设置`DropDownList`控件的选中值为`xiao`。
#### 三、单选按钮组处理
```csharp
if (radioButton1.Checked == true)
{
sex = radioButton1.Text.ToString();
}
else
{
sex = radioButton2.Text.ToString();
}
```
- **解释**:此C#代码片段用于处理单选按钮组的值。如果`radioButton1`被选中,则`sex`的值为`radioButton1`的文本值;否则取`radioButton2`的文本值。
以上内容涵盖了SQL基础知识、应用配置、页面跳转以及相关C#代码知识点,希望对您有所帮助。