GridView1 删除、修改(字段类型全而且用GridView集成处理)

GridView1 删除、修改(字段类型全而且用GridView集成处理)
GridView1 删除、修改(字段类型全而且用GridView集成处理)

张家口教育学院教育技术中心 第 1 页 共 21 页

删除、修改记录(字段类型全、GridView 集成处理、双向排序、翻页、绑定列)

2010.10.30

学习内容:TemplatedField 模板列技术、使用绑定列技术、鼠标所在行颜色提示、绑定列中使用下拉列表框、设置字段的ControlStyle 属性

运行态

1. 在VS2008中建立Web项目。

2. 在Windows环境下将数据库jyxystu.mdf(命名含义为教育学院学生)和jyxystu.ldf拷贝到项目的App_Data目录下,并在VS中添加的项目中。

张家口教育学院教育技术中心第2 页共21 页

3. 在SQL Server 2000中附加数据库jyxystu.mdf。

4. 在数据库中建立一个表:tb_zg(命名含义为职工表,以tb开头意思是本对象是一个表),表结构如下:

5. 录入若干条记录(为了看出效果,记录数至少20条)

6. 修改web.config文件,

(1) 删除下方的

(2) 在位置下增加:

张家口教育学院教育技术中心第3 页共21 页

7. 在项目中添加Web窗体mygridview.aspx(文件名含义为按类查询)

8. 布局控件如下:

一个GridView,在GridView下方有两个label,准备显示第x页共y页。ID属性分别是Label1和Label2。

GridView1自动套用格式为"雪松"。

AutoGenerateColumns="False"

AllowSorting="True"

AllowPaging="True"

PageSize="10"

因为要采用分页技术所以需要再设置PagerSettings属性

FirstPageText="首页"

LastPageText="尾页"

NextPageText="下一页"

PreviousPageText="上一页"

Mode="NextPreviousFirstLast"

把GridView中的FontSize设为small。

GridView的DataKeyNames属性为"zgbh"

GridView1编辑列界面如下(通过“添加列”),如图所示:

张家口教育学院教育技术中心第4 页共21 页

张家口教育学院教育技术中心第5 页共21 页

其中在“选定的字段”下各字段的属性设置如下:

此外:

编辑按钮还需设置属性:ShowEditButton="True"

删除按钮还需设置属性:ButtonType="Button" CommandName="delete"Text="删除"

补充知识DataFormatString属性常见取值:

张家口教育学院教育技术中心第6 页共21 页

{0:c} 货币格式

{0:d}短日期2010-10-12

{0:D}长日期2010年10月12日

{0:000.0}四舍五入小数点保留第几位有效数字;

{0:N2}小数点保留2位有效数字;{0:N2}% 小数点保留2位有效数字加百分号;

{0:yy-MM-dd} 例如07-3-25;;{0:yyyy-MM-dd} 例如2007-3-25

9.切换到源视图,补充性别绑定列的HTML代码。

说明:

(1)希望网页运行后,当GridView进入编辑状态后,在性别列处显示的是下拉列表框,在下拉列表框中有男、女两个选项供选择,要比提供文本框输入男和女,显得界面更友好,如果单纯用文本框输入,就不用搞这么复杂了,直接用一个BoundField列就可以了。

(2)除手工在源视图下填写代码外,另外一种正规方法是在GridView上点智能标记,调用快捷菜单“编辑模板”,然后选Column[2]-性别,进入模板列编辑状态,在此图中可设插入控件,编辑完后点“结束模板编辑”按钮返回,如果同学们采用这种方法,那么在设计完后,对照一下HTML代码,看有无缺漏。另外ItemTemplate是浏览状态下的控件显示。EditItemTemplate是编辑状态下的控件显示。

张家口教育学院教育技术中心第7 页共21 页

(3)使用Bind方法可将修改后的数据写回,通常在数据绑定控件的EditItemTemplate或InsertItemTemplate模板中使用Bind方法,并将字段名称传递给它,以显示和编辑字段数据,双向绑定语法格式如下:

'<%# Bind("字段名") %>'

张家口教育学院教育技术中心第8 页共21 页

张家口教育学院教育技术中心第9 页共21 页

张家口教育学院教育技术中心第10 页共21 页

张家口教育学院教育技术中心第11 页共21 页

(4)在编辑模板状态下,在ItemTemplate模板中为“删除”按钮设置以下这些属性。关键是CommandName="delete"OnClientClick="return confirm("您确定要删除该条记录吗?");"

张家口教育学院教育技术中心第12 页共21 页

10.导入命名空间:

using System.Data.SqlClient; //cyd 2010.10 导入命名空间,此例就不用类来处理了

11. 在Page_Load函数上方写下数据库连接字符串

// cyd 2010.10 声明连接字符串,所取值来自于Web.config文件中的键

string MyConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnStr"];

12. Page_Load函数如下:

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack) bindgrid(); //cyd 2010.10 首次运行,表格绑定数据源

}

13.用户自定义函数bindgrid()函数如下:

void

bindgrid()

{

DataSet ds = new DataSet();

using (SqlConnection sqlconn = new SqlConnection(MyConnStr))

{

SqlDataAdapter sqld = new SqlDataAdapter("select zgbh,xm,xb,csny,gl,gz from tb_zg", sqlconn); sqld.Fill(ds, "tb_zg");

}

//cyd 2010.10 判断是否已经进行排序,如果是则按照ViewState中存储的信息生成排序后的DataView对象

if (ViewState["SortDirection"] == null)

GridView1.DataSource = ds.Tables["tb_zg"].DefaultView;

else

张家口教育学院教育技术中心第13 页共21 页

{

DataView SortedDV = new DataView(ds.Tables["tb_zg"]);

SortedDV.Sort = ViewState["SortExpression"].ToString() + " " + ViewState["SortDirection"].ToString(); GridView1.DataSource = SortedDV;

}

GridView1.DataBind();

}

14. GridView1的Sorting事件代码如下:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)

{

if (ViewState["SortDirection"] == null) ViewState["SortDirection"] = "DESC";

if (ViewState["SortDirection"].ToString() == "ASC")

ViewState["SortDirection"] = "DESC";

else

ViewState["SortDirection"] = "ASC";

ViewState["SortExpression"] = e.SortExpression;

this.bindgrid();

}

15.GridView1的RowDeleting事件代码如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

张家口教育学院教育技术中心第14 页共21 页

//cyd 2010.10 设置数据库连接

SqlConnection sqlconn = new SqlConnection(MyConnStr);

sqlconn.Open();

//cyd 2010.10 删除记录

String sql = "delete from tb_zg where zgbh='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

SqlCommand Comm = new SqlCommand(sql, sqlconn);

Comm.ExecuteNonQuery();

sqlconn.Close();

sqlconn = null;

Comm = null;

GridView1.EditIndex = -1;

bindgrid();

}

16.GridView1的RowEditing事件代码如下:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)

{

GridView1.EditIndex = e.NewEditIndex;

bindgrid();

}

17.GridView1的RowCancelingEdit事件代码如下:

张家口教育学院教育技术中心第15 页共21 页

protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)

{

GridView1.EditIndex = -1;

bindgrid();

}

18.GridView1的RowUpdating事件代码如下:

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)

{

SqlConnection sqlconn = new SqlConnection(MyConnStr);

//cyd 2010 修改记录

try

{

sqlconn.Open();

SqlCommand Comm = new SqlCommand();

Comm.Connection = sqlconn;

https://www.360docs.net/doc/b112965216.html,mandText = "update tb_zg set xm=@xm,xb=@xb,csny=@csny,gl=@gl,gz=@gz where zgbh=@zgbh";

Comm.Parameters.AddWithValue("@zgbh", GridView1.DataKeys[e.RowIndex].Value.ToString()); //cyd 2010.10职工编号做为主索引,是在gridview中设置的属性DataKeyNames="zgbh"

Comm.Parameters.AddWithValue("@xm", ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text);

Comm.Parameters.AddWithValue("@xb", ((DropDownList)GridView1.Rows[e.RowIndex].Cells[2].Controls[1]).Text); //cyd 2010.10因为性别是用下拉列表框来处理的,属于模板字段,所以为1,其它都为0

Comm.Parameters.AddWithValue("@csny", ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text);

Comm.Parameters.AddWithValue("@gl", ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text);

张家口教育学院教育技术中心第16 页共21 页

Comm.Parameters.AddWithValue("@gz", ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text);

Comm.ExecuteNonQuery();

sqlconn.Close();

sqlconn = null;

Comm = null;

}

catch (Exception ex)

{

Response.Write("数据库更新出错" + ex.ToString());

}

GridView1.EditIndex = -1;

bindgrid();

}

19. GridView1的PageIndexChanging事件代码如下:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

//cyd 2010.10 设置要显示的页的索引并重新绑定数据

GridView1.PageIndex = e.NewPageIndex;

bindgrid();

}

20. GridView1的DataBound事件代码如下:

protected void GridView1_DataBound(object sender, EventArgs e)

张家口教育学院教育技术中心第17 页共21 页

{

//cyd 2010.10 分页数据绑定前设置当前页信息

Label2.Text = "共" + (GridView1.PageCount).ToString() + "页";

Label1.Text = "第" + (GridView1.PageIndex + 1).ToString() + "页";

}

21. GridView1的RowDataBound事件代码如下(在该事件中解决两个问题,一是鼠标移到行上时变时;一是解决删除记录时给一次后悔机会):

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{ int i;

//cyd 2010.10 执行循环,保证每条数据都可以更新

for (i = 0; i <= GridView1.Rows.Count; i++)

{ //cyd 2010.10首先判断是否是数据行

if (e.Row.RowType == DataControlRowType.DataRow)

{ //cyd 2010.10当鼠标停留时更改背景色

e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");

//cyd 2010.10当鼠标移开时还原背景色

e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");

}

}

/* 以前用以下这段代码配合删除按钮,进行删除前确认,但是失败了,原因是两段代码冲突,后将GridView中的删除按钮列转换成

模板列,并给ItemTemplate模板中为按钮的OnClientClick事件写代码:return confirm("您确定要删除该条记录吗?"); 就实现了删除前有确认对话框的效果 //cyd 2010.10 解决删除记录时有提示

if (e.Row.RowType == DataControlRowType.DataRow)

{

if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)

{

张家口教育学院教育技术中心第18 页共21 页

((Button)e.Row.Cells[7].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");

}

}

*/

}

【结束】

2010年10月30日本程序还需要解决的问题:

1.将插入记录集成到GridView。

2.将验证控件集成到GridView。

将在下一节课中处理。

作业:

张家口教育学院教育技术中心第19 页共21 页

将工程中素材修改为以下班级表,请同学们将文件进行修改,记录自已加:

GridView事件总结:

张家口教育学院教育技术中心第20 页共21 页

批量修改数据库表字段类型

实际使用例子: /*--将所需表的某特定数值类型批量转换为其他类型--*/ /*--调用示例:E1T04_1996 char(10)-转换为nvarchar(100) --*/ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go CREATE procedure [dbo].[p_set] as declare tb cursor for SELECT sql='alter table ['+https://www.360docs.net/doc/b112965216.html,+'] alter column ['+https://www.360docs.net/doc/b112965216.html,+'] nvarchar' +' (100)' FROM syscolumns a left join systypes b on a.xtype=b.xusertype inner join sysobjects d on a.id=d.id and d.xtype='U' and https://www.360docs.net/doc/b112965216.html,='E1T04_1996' where https://www.360docs.net/doc/b112965216.html, ='char' AND a.length='10' declare @sql varchar(1000) open tb fetch next from tb into @sql while @@fetch_status = 0 begin exec(@sql) fetch next from tb INTO @sql end close tb deallocate tb -- --DECLARE @sql VARCHAR(1000) --select @sql='alter table ['+https://www.360docs.net/doc/b112965216.html,+'] alter column ['+https://www.360docs.net/doc/b112965216.html,+'] nvarchar' -- +'(100)' FROM syscolumns a -- left join systypes b on a.xtype=b.xusertype -- inner join sysobjects d on a.id=d.id and d.xtype='U' and https://www.360docs.net/doc/b112965216.html,='E1T04_1996' where https://www.360docs.net/doc/b112965216.html, ='char' AND a.length='10' -- -- PRINT @sql --------------------------------------------------------------------------------------

SQL语句修改字段类型长度

sql语句修改字段属性 如果数据量非常大,达到几百万条记录以上,使用企业管理器来更改字段类型,很多时候会超时,更改不成功,这时可以使用sql语句来更改,如下: a、更改字段类型长度 alter table 表 alter column 字段名类型的长度--varchar(60) 例:把城市表的城市名字段有原来的长度20改为30 alter table testcity alter column cityname varchar(30) b、更改字段类型 alter table 表 alter column 字段名更改后的类型 例:把城市表的城市名字段有原来的varchar类型改为int类型 alter table testcity alter column cityname int 如果sno字段原来不为空: alter table student alter column sno varchar(10) not null 如果sno字段原来为空: alter table student alter column sno varchar(10) 因为不管以前的字段是否允许为空,执行 alter table student alter column sno varchar(10) 后该字段都会变为允许为空。还有就是执行这类修改操作时最好是空表,如果有数据,可能会失败。因为有些数据类型之间可能不能隐式的转换或者根本就不能转化,比如“abc”要转换成int型。所以,一切还要自己注意控制。 c、添加not null约束 alter table 表 alter column 字段名 int not null 例:把cid不能输入空值 alter table testcity alter column cid int not null d、设置主键 alter table 表 add constraint 主键名 primary key(字段名) 例:把cid设为主键 alter table testcity add constraint pk_cid primary key(cid) e、更改字段名 exec sp_rename 表名.字段名,更改后的字段名,column f、添加字段名 alter table 表 add 字段名字段类型 default null篇二:用sql语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 alter table table_name drop column column_name 3.修改字段类型 alter table table_name alter column column_name new_data_type 4.sp_rename 改名 exec sp_rename [dbo].[table_1].[filedname1], filedname2, column 更改当前数据

SQL修改数据库表的列属性

SQL修改数据库表的列属性(ALTER语句) 我们可以用客户端的语句改写,psql比如把数据库表journal里的keyword,ekeyword属性改为character(350),原来为character(200),那么我们可以这样操作: psql postgres -c "ALTER TABLE journal ALTER keyword TYPE character(350)" psql postgres -c "ALTER TABLE journal ALTER ekeyword TYPE character(350)" 好了,修改结束。 附ALTER语句的文档。 ---------------------- ALTER TABLE [ ONLY ]name[ * ] action[, ... ] ALTER TABLE [ ONLY ]name[ * ] RENAME [ COLUMN ]column TO new_column ALTER TABLE name RENAME TO new_name ALTER TABLE name SET SCHEMA new_schema 这里action是下列之一: ADD [ COLUMN ]columntype[column_constraint[ ... ] ] DROP [ COLUMN ]column[ RESTRICT | CASCADE ] ALTER [ COLUMN ]column TYPE type[ USING expression] ALTER [ COLUMN ]column SET DEFAULT expression ALTER [ COLUMN ]column DROP DEFAULT ALTER [ COLUMN ]column{ SET | DROP } NOT NULL ALTER [ COLUMN ]column SET STATISTICS integer ALTER [ COLUMN ]column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } ADD table_constraint DROP CONSTRAINT constraint_name[ RESTRICT | CASCADE ] DISABLE TRIGGER [trigger_name| ALL | USER ] ENABLE TRIGGER [trigger_name| ALL | USER ] CLUSTER ON index_name SET WITHOUT CLUSTER SET WITHOUT OIDS OWNER TO new_owner SET TABLESPACE new_tablespace描述 ALTER TABLE变更一个现存表的定义。它有好几种子形式: ADD COLUMN 这种形式用和CREATE TABLE里一样的语法向表中增加一个新的字段。 DROP COLUMN 这种形式从表中删除一个字段。请注意,和这个字段相关的索引和表约束也会被自动删除。如果任何表之外的对象依赖于这个字段,你必须说CASCADE,比如,外键参考,视图等等。 ALTER COLUMN TYPE

用sql语句添加删除修改字段

1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 3.修改字段类型 ALTER TABLE table_name ALTER COLUMN column_name new_data_type 4.sp_rename 改名 EXEC sp_rename '[dbo].[Table_1].[filedName1]', 'filedName2', 'COLUMN' 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename [ @objname = ] 'object_name' ,[ @newname = ] 'new_name',分类信息; [ , [ @objtype =] 'object_type' ] 如:EXEC sp_rename 'newname','PartStock' 5.sp_help 显示表的一些基本情况 sp_help 'object_name' 如:EXEC sp_help 'PartStock' 6.判断某一表PartStock中字段PartVelocity是否存在 if exists (select * from syscolumns where id=object_id('PartStock') and name='PartVelocity') print 'PartVelocity exists' else print 'PartVelocity not exists' 另法: 判断表的存在性: select count(*) from sysobjects where type='U' and name='你的表名' 判断字段的存在性: select count(*) from syscolumns where id = (select id from sysobjects where type='U' and name='你的表名') and name = '你要判断的字段名' 一个小例子 --假设要处理的表名为: tb --判断要添加列的表中是否有主键 if exists(select 1 from sysobjects where parent_obj=object_id('tb') and xtype='PK')

修改表的结构

修改表的结构 1、查阅字段列的设置 方法:修改字段的类型为“查阅向导”,弹出“查阅向导”对话框,可以使用其他表或查询中的值和自行键入的值。 说明: (1)创建查阅字段列后,输入字段值时可以从下拉列表中选择输入。 (2)使用其他表或查询中的值创建查阅字段列后,会自动创建两表之间的关系,一般为一对多关系,若需重新设置查阅字段列,需先删除表间关系。 (3)创建查阅字段列也可直接设置字段的“显示控件”属性为或,行来源类型选择:表/查询、、字段列表,再在中设置相应的值。 2、插入字段 (1)在设计视图中,选择需插入字段的位置,“表格工具(设计)”----“工具”----“插入行” (2)在设计视图中,选择需插入字段的位置,右击----“插入行” (3)在数据表视图中,选择需插入字段列,右击----“插入字段” (4)在数据表视图中,选择需插入字段列,“表格工具(字段)”----“添加或删除”----选择一种数据类型。 说明:方法1-3在选中的字段之前插入字段,方法4是在选中的字段之后插入字段。 3、重命名字段 (1)在设计视图中直接修改 (2)在数据表视图中双击字段名或右击字段名后选择“重命名字段” 4、修改字段名称及相关属性 说明:可以在设计视图中修改字段相关的属性,也可以在数据表视图下修改字段的部分属性。修改字段的数据类型或字段大小可能会造成表中的数据丢失。 5、移动字段 方法:选择字段后鼠标拖动至目标位置。 说明:在数据表视图中移动字段的位置只能改变显示位置,不会真正改变字段本身的顺序。

6、删除字段 方法: (1)在设计视图中,选择需要删除的字段行: “表格工具(设计)”----“工具”----“删除行” 右击----“删除行” 按Delete “开始”----“记录”----“删除” (2)在数据表视图中,选择需要删除的字段列: “表格工具(字段)”----“添加或删除”----“删除” 右击----“删除字段” 按Delete “开始”----“记录”----“删除”/“删除列” 说明:在数据库中删除数据库对象或表中的数据(包括字段、记录)后不能恢复,因此操作前应进行备份。 7、设置主键 (1)主键:每个表最多允许一个主键。可将一个字段设为主键,称单字段主键;也可同时将多个字段设为一个主键,称多字段主键。 (2)设置主键:在设计视图中选中一个或多个字段后,“表格工具(设计)”----“工具”----“主键”/右击----“主键”。 (3)删除主键:同设置主键的方法。 第十一课表的相关操作 一、表的打开与关闭 在导航窗格中双击表名,也可右击表名选择“打开”或“设计视图”。 二、复制表 在导航窗格中选择表名,进行复制和粘贴。 三、重命名表 在导航窗格中右击表名或按F2。 四、删除表 在导航窗格中右击表名或按delete,也可单击“开始”----“记录”----“删除”。

ArcGIS不提供修改字段名称和类型的功能的原因及解决方法

ArcGIS不提供修改字段名称和类型的功能的原因及解决方法 在ArcGIS Desktop的问题咨询当中,好多用户对是否可以修改字段名称很感兴趣,也有一部分用户感兴趣要素类字段的显示顺序,因为在ArcGIS10.1版本之前,字段名称还没有办法修改,那么唯一的办法就是将原字段删除掉,然后添加新名称的字段,但是这会产生一个小问题(真不知道到底是个问题不),新添加的字段只会显示在最后面,可能让用户看着非常不爽,由于他们在实际工作中习惯于某个字段的位置,这就出现了调整要素类字段显示顺序的要求。 提示:还好,ArcGIS Desktop10.1已经可以直接修改字段名称,那么估计字段显示顺序的问题估计也会少很多了,但是ArcGIS Desktop10.1之前的版本该怎么处理呢? 其实ArcGIS Desktop10.1之前的版本,有一个暂时修改显示顺序(物理存储并没有修改),可以使用如下功能 来临时修改顺序,然后保存为MXD来使用,这样做也能满足用户的需求,但是只限于打开保存好的MXD。 那么怎么才能进行物理的修改呢? 因为通过ArcCatalog创建字段,以ArcSDE Geodatabase为例,在数据库层次上已经定义好了显示的顺序,所以,我们想物理修改,只能说是重新创建一份数据,但是让用户从头至尾的新建数据肯定耗时耗力,我们的目的就是让用户非常快速的在已有数据的基础上来整理数据。 1:可以新建空的Schema,这个结构的字段要求就是用户想要的字段排列顺序,如果字段比较少,用户可以手动创建,如果字段比较多,不妨使用ArcGIS Diagrammer工具来创建,我们可以将已有的Schema导出成XML,在ArcGIS Diagrammer进行修改,如下图

SQL数据库修改表结构

SQL数据库修改表结构 修改表结构包括: 增加字段、删除字段、增加约束、删除约束、修改缺省值、修改字段数据类型、重命名字段、重命名表。 所有这些动作都是用 ALTER TABLE 命令执行的。 1、增加字段 ALTER TABLE products ADD description text; 你也可以同时在该字段上定义约束,使用通常的语法: ALTER TABLE products ADD description text CHECK (description <> ''); 实际上,所有在CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。不过,我们要注意的是缺省值必须满足给出的约束,否则ADD 将会失败。另外,你可以在你正确填充了新字段的数值之后再增加约束(见下文)。 2、删除字段 要删除一个字段,使用下面这样的命令: ALTER TABLE products DROP COLUMN description; 不管字段里有啥数据,都会消失。和这个字段相关的约束也会被删除。不过,如果这个字段被另外一个表的外键所引用,PostgreSQL 则不会隐含地删除该约束。你可以通过使用 CASCADE 来授权删除任何依赖该字段的东西: ALTER TABLE products DROP COLUMN description CASCADE; 3、增加约束 要增加一个约束,使用表约束语法。比如: ALTER TABLE products ADD CHECK (name <> ''); ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no); ALTER TABLE products ADD FOREIGN KEY (product_group_id) REFERENCES product_groups; ALTER TABLE Teacher add constraint df_sex default('男') for sex 要增加一个不能写成表约束的非空约束,使用下面语法: ALTER TABLE products ALTER COLUMN product_no SET NOT NULL; 这个约束将立即进行检查,所以表在添加约束之前必须符合约束条件。 4、删除约束 要删除一个约束,你需要知道它的名字。如果你给了它一个名字,那么事情就好办了。否则系统会分配一个生成的名字,这样你就需要把它找出来了。psql 的命令 \d tablename 在这儿可以帮忙;其它接口可能也提供了检查表的细节的方法。然后就是这条命令:ALTER TABLE products DROP CONSTRAINT some_name;

图解说明如何修改SAP标准字段文本

SAP 语言翻译大师系列一总体说明 SAP是一个全球化的软件,支持35钟语言,除此之外,公司有特别的需要,还可以设置自己的语言(预留了语言代码Z1)。国内软件如果希望走向全球,也可以借鉴一下SAP的语言的设计。 下图为sap登陆时的界面,SAp支持35钟语言,但实际公司根据需要安装,譬如;中国公司可能只安装中、英、德三种常规语言。 SAP支持某种语言的含义是很丰富的。 1. 支持某种语言的含义1-技术架构上可以支持多语言。 1.1. 可以用该语言登陆系统,登陆后所有的菜单都是用该语言显示,无论用何语言登陆,所有功能完全相同。 下图是用中文、英文登陆SAP后,查看同一张采购订单的对比图,按照SAP的分类,可以分为三种。 l 界面文本(Interface Text)需根据登陆语言的不同显示不同语言的描述,如图标1,2处,打印按钮,用中文登陆显示打印预览,英文登陆显示Print preview。 l 屏幕文本根据登陆语言的不同显示不同语言的描述,例如图标4,中文登陆,显示物料,英文登陆显示Material。 业务操作中,我们会发现SAP中的屏幕文本中有很多翻译不准确或不完整的地方。如图标5处所示,用中文登陆仍然显示GR-based IV,这说明翻译不完整。包括图标5处的发票收据,翻译太生硬,不容易理解,在下文中,我们介绍SAP中,如何修改这些界面文本、屏幕文本,我们会发现基本上我们看到的文本基本上都是可以修改的,方法也很简洁。 l 配置的描述根据登陆语言的不同显示不同语言的描述,我们知道SAP是一个配置的系统,而很多配置是全球性的,例如这里演示的采购订单类型,可能全球20个国家的人都需要使用,各个国家的语言完

利用ADOX修改ACCESS字段名及类型

利用ADOX修改ACCESS字段名及类型 'VBA代码 '需要引用ADOX Public Sub Fn修改字段名和类型() Dim Cnn As New ADODB.Connection Dim Cat As New ADOX.Catalog Set Cnn = CurrentProject.Connection Cat.ActiveConnection = Cnn Dim strTblName As String Dim strColName As String strTblName = "表名" strColName = "字段名" Dim i As Integer Dim j As Integer Dim k As Integer For i = 0 To Cat.Tables.Count - 1 If Cat.Tables(i).Type = "TABLE" Then For j = 0 To Cat.Tables(i).Columns.Count - 1 If Cat.Tables(i).Name = strTblName And Cat.Tables(i).Columns(j).Name = strColName Then '修改字段类型 [下行蓝色部分用法详见备注] Cnn.Execute "alter table " & strTblName & " alter column " & strColName & " varchar(100)" '修改字段名 Cat.Tables(i).Columns(j).Name = "新字段名" End If Next j End If Next i MsgBox "OK" End Sub ***************************************************************************************** 备注:(此内容COPY自ADO2.5帮助文件) DataTypeEnum 指定Field、Parameter或Property的数据类型。在下表的“说明”列的括号中显示了相应的 OLE DB 类型指示符。有关 OLE DB 数据类型的详细信息,请参阅 OLE DB Programmer's Reference 中的 Chapter 13 和附录 A 。常量值说明 AdArray (不适用于 ADOX。)0x2000 一个标志值,通常与另一个数据类型常量组合,指示该数据类型的数组。 adBigInt 20 指示一个八字节的有符号整数 (DBTYPE_I8)。adBinary 128 指示一个二进制值 (DBTYPE_BYTES)。 adBoolean 11 指示一个布尔值 (DBTYPE_BOOL)。 adBSTR 8 指示以 Null 终止的字符串 (Unicode) (DBTYPE_BSTR)。

更改字段类型将Number修改成varchar类型

更改字段类型-将Number修改成varchar类型 更改字段类型-将Number修改成varchar2类型. 实际开发中,添加字段,更改字段类型是常有的事,最近碰到的是数据库中有一个字段ABWORKBYRARATE ,类型为Number(10,5),需要改成字符串类型varchar2(30),而且表中已经有很多数据了,直接改报错,改不了。 解决方案如下: 1. 重命名原字段 alter table CDS_IMPORT_FORWARDCHARGE rename column ABWORKBYRARATE to ABWORKBYRARATE123; 2. 增加字段和注释 alter table CDS_IMPORT_FORWARDCHARGE add ABWORKBYRARATE varchar2(30); comment on column CDS_IMPORT_FORWARDCHARGE.ABWORKBYRARATE is '国外段操作费'; 3. 将原字段的值赋值给新字段 update cds_import_forwardcharge t set t.abworkbyrarate=t.abworkbyrarate123; 4. 删除原字段: alter table CDS_IMPORT_FORWARDCHARGE drop column ABWORKBYRARATE123; 基本就这样,不过发现一个问题,小于1 的数如0.20000,变成了.20000,小数点前面的0不见了,解决如下: 思路就是将以.开头的值前面加0。 update cds_import_forwardcharge t set t.abworkbyrarate=(select replace(t.abworkbyrarate,'.','0.')from dual) where t.abworkbyrarate is not null and ((select instr(t.abworkbyrarate,'.') from dual)=1); 小结一下:新增的字段替换了原字段,与原表相比,新增字段在表中的顺序发生变化,

修改表的属性sql

SqlServer修改表结构总结增加字段删除字段增加约束删除约束修改缺省值修改字段数据类型重命名字段重命名表。所有这些动作都是用ALTER TABLE 命令执行的。增加字段要增加一个字段使用下面这样的命令ALTER TABLE products ADD COLUMN description text新增的字段对于表中已经存在的行而言最初将先填充所给出的缺省值如果你没有声明DEFAULT子句那么缺省是空值。你也可以同时在该字段上定义约束使用通常的语法ALTER TABLE products ADD COLUMN description text CHECK description 实际上所有在CREATE TABLE 里描述的可以应用于字段之选项都可以在这里使用。不过我们要注意的是缺省值必须满足给出的约束否则ADD 将会失败。另外你可以在你正确填充了新字段的数值之后再增加约束见下文。删除字段要删除一个字段使用下面这样的命令ALTER TABLE products DROP COLUMN description不管字段里有啥数据都会小时。和这个字段相关的约束也会被删除。不过如果这个字段被另外一个表的外键所引用PostgreSQL 则不会隐含地删除该约束。你可以通过使用CASCADE 来授权删除任何依赖该字段的东西ALTER TABLE products DROP COLUMN description CASCADE参阅Section 5.11 获取有关这些操作背后的机制的信息。增加约束要增加一个约束使用表约束语法。比如ALTER TABLE products ADD CHECK name ALTER TABLE products ADD

ARCGIS修改字段结构

发表于2015-4-10 10:45 | 只看该作者 |只看大图倒序浏览阅读模式 本帖最后由若水三千于 2015-4-10 15:50 编辑 在ArcGIS中,修改字段名称、类似和物理顺序是一件不好办的事,特别是需要修改字段比较多的情况下。通常的做法是新建字段-字段计算器赋值-删除原有字段的方法来达到修改的目的。这里介绍另外一种方法。 现需要将宾馆旅店图层的字段名称修改为英文,将KIND字段类型由字符串改为整型,并调换KIND和TELEPHONE的顺序。 第一步,在Catalog中将数据导出为XLM工作空间文档

这里只导出方案(即数据结构),防止数据量太大;如果导出数据的话,后面就可以省一步。

第二步,使用ArcGISDiagrammer打开并编辑XML文件。 PS: ArcGISDiagrammer是ESRI推出的免费的创建、编辑、分析地理数据库结构的生产工具。它只有3M多,比较小。 软件下载地址: 10.1版本:https://www.360docs.net/doc/b112965216.html,/file/90110119 10.2版本:https://www.360docs.net/doc/b112965216.html,/file/90110121 9.2/9.3版本:https://www.360docs.net/doc/b112965216.html,/file/90110072 教程下载地址:https://www.360docs.net/doc/b112965216.html,/shared/folder_10820066_4ce901d3/在属性面板中找到字段修改项(类似于VS);

修改字段:

第三步,保存、导出数据 可以将其保存为工程文件(*.diagram)以便于下次编辑;因为我们要将改变数据结构而为改变数据,所以还要发布为XLM文件。

用SQL语句添加删除修改字段及一些表与字段的基本操作

用SQL语句添加删除修改字段及 一些表与字段的基本操作 用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 3.修改字段类型 ALTER TABLE table_name ALTER COLUMN column_namenew_data_type 4.sp_rename 改名 更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。 语法 sp_rename[ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ] 如:EXEC sp_rename 'newname','PartStock' sp_rename是一个功能丰富的存储过程,能够对表、视图、列、存储过程、触发器、默认值、数据库、对象或规则进行重命名,并且保证不丢失数据。 下例将TB_MoneyPay_PJApply表中的字段PayMoney修改为PaidCash: EXEC sp_rename 'TB_MoneyPay_PJApply.[PayMoney]', 'PaidCash', 'COLUMN' sp_renamedb 更改数据库的名称。 下例将数据库accounting 改名为financial。 EXEC sp_renamedb 'accounting', 'financial' SQL Server 2005 添加字段ALTER TABLE Supplier ADD LoginPasswordvarchar(20) 不需要加COLUMN 修改表字段属性ALTER TABLE Supplier ALTER COLUMN LoginPasswordvarchar(30) 5.sp_help 显示表的一些基本情况 sp_help 'object_name' 如:EXEC sp_help 'PartStock' 6.判断某一表PartStock中字段PartVelocity是否存在 if exists (select * from syscolumns where id=object_id('PartStock') and name='PartVelocity') print 'PartVelocity exists' else print 'PartVelocity not exists'

相关主题
相关文档
最新文档