加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Winform常用代码

发布时间:2020-12-12 14:42:01 所属栏目:MsSql教程 来源:网络整理
导读:// ToolStripSplitButton 是 标准按钮和下拉按钮的组合, 各自工作,但有联系,感觉上后者是没有向下箭头 ToolStripDropDownButton ; ToolStripDropDownButton 只含有一个按钮,可以选择有没有向下箭头的标志, 单击时显示关联的?ToolStripDropDown?的控件

Name

Default

Description

Application?Name

?

The?name?of?the?application,?or?'.Net?SqlClient?Data?Provider'?if?no?application?name?is?provided.

AttachDBFilename
-or-
extended?properties
-or-
Initial?File?Name

?

The?name?of?the?primary?file,?including?the?full?path?name,?of?an?attachable?database.?The?database?name?must?be?specified?with?the?keyword?'database'.

Connect?Timeout
-or-
Connection?Timeout

15

The?length?of?time?(in?seconds)?to?wait?for?a?connection?to?the?server?before?terminating?the?attempt?and?generating?an?error.

Connection?Lifetime

0

When?a?connection?is?returned?to?the?pool,?its?creation?time?is?compared?with?the?current?time,?and?the?connection?is?destroyed?if?that?time?span?(in?seconds)?exceeds?the?value?specified?by?connection?lifetime.?Useful?in?clustered?configurations?to?force?load?balancing?between?a?running?server?and?a?server?just?brought?on-line.

Connection?Reset

'true'

Determines?whether?the?database?connection?is?reset?when?being?removed?from?the?pool.?Setting?to?'false'?avoids?making?an?additional?server?round-trip?when?obtaining?a?connection,?but?the?programmer?must?be?aware?that?the?connection?state?is?not?being?reset.

Current?Language

?

The?SQL?Server?Language?record?name.

Data?Source
-or-
Server
-or-
Address
-or-
Addr
-or-
Network?Address

?

The?name?or?network?address?of?the?instance?of?SQL?Server?to?which?to?connect.

Enlist

'true'

When?true,?the?pooler?automatically?enlists?the?connection?in?the?creation?thread's?current?transaction?context.

Initial?Catalog
-or-
Database

?

The?name?of?the?database.

Integrated?Security
-or-
Trusted_Connection

'false'

Whether?the?connection?is?to?be?a?secure?connection?or?not.?Recognized?values?are?'true',?'false',?and?'sspi',?which?is?equivalent?to?'true'.

Max?Pool?Size

100

The?maximum?number?of?connections?allowed?in?the?pool.

Min?Pool?Size

0

The?minimum?number?of?connections?allowed?in?the?pool.

Network?Library
-or-
Net

'dbmssocn'

The?network?library?used?to?establish?a?connection?to?an?instance?of?SQL?Server.?Supported?values?include?dbnmpntw?(Named?Pipes),?dbmsrpcn?(Multiprotocol),?dbmsadsn?(Apple?Talk),?dbmsgnet?(VIA),?dbmsipcn?(Shared?Memory)?and?dbmsspxn?(IPX/SPX),?and?dbmssocn?(TCP/IP).?
The?corresponding?network?DLL?must?be?installed?on?the?system?to?which?you?connect.?If?you?do?not?specify?a?network?and?you?use?a?local?server?(for?example,?"."?or?"(local)"),?shared?memory?is?used.

Packet?Size

8192

Size?in?bytes?of?the?network?packets?used?to?communicate?with?an?instance?of?SQL?Server.

Password
-or-
Pwd

?

The?password?for?the?SQL?Server?account?logging?on.

Persist?Security?Info

'false'

When?set?to?'false',?security-sensitive?information,?such?as?the?password,?is?not?returned?as?part?of?the?connection?if?the?connection?is?open?or?has?ever?been?in?an?open?state.?Resetting?the?connection?string?resets?all?connection?string?values?including?the?password.

Pooling

'true'

When?true,?the?SQLConnection?object?is?drawn?from?the?appropriate?pool,?or?if?necessary,?is?created?and?added?to?the?appropriate?pool.

User?ID

?

The?SQL?Server?login?account.

Workstation?ID

the?local?computer?name

The?name?of?the?workstation?connecting?to?SQL?Server.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

//ToolStripSplitButton标准按钮和下拉按钮的组合,各自工作,但有联系,感觉上后者是没有向下箭头ToolStripDropDownButtonToolStripDropDownButton只含有一个按钮,可以选择有没有向下箭头的标志,单击时显示关联的?ToolStripDropDown?的控件。两者均可改变箭头标志在做还是在右。

//VS自带双缓冲

this.SetStyle(ControlStyles.UserPaint?|

?ControlStyles.AllPaintingInWmPaint?|

ControlStyles.OptimizedDoubleBuffer,?true);

//控件双缓冲

Control.DoubleBuffered=true;?//attribute?modfied?by?Protected

//手工双缓冲

Bitmap?bmp?=?new?Bitmap(600,?600);
Graphics?g?=?Graphics.FromImage(bmp);

g.DrawLine();

this.CreateGraphics().DrawImage(bmp,?0,?0);//这句是关键,不能à在OnPaint里画BitBmp在这里调Invalidate

Invalidate(Rectangle)//规定区域重绘,解决闪烁的另一种方法

ComboBox?ComboBox1?=?(ComboBox)?sender;

(Sender?as?SomeObject).Method()

this.label1.Font?=?new?System.Drawing.Font("微软雅黑",?72F,?System.Drawing.FontStyle.Regular,?System.Drawing.GraphicsUnit.Point,?((byte)(134)));

this.label1.Font?=?new?Font("微软雅黑",?fontSize);

//自定义控件背景透明

SetStyle(ControlStyles.UserPaint,?true);

SetStyle(ControlStyles.SupportsTransparentBackColor,?true);

this.BackColor?=?Color.Transparent;

//获得程序集

System.Reflection.Assembly?assem?=?System.Reflection.Assembly.GetExecutingAssembly();

//点移位

Point.Offset(Point);

Point.Offset(int,int);

Rectangle.Contains(Point);

//截获标题栏消息,自画标题栏

using?System.Runtime.InteropServices;

using?System.Drawing.Drawing2D;

[DllImport("user32.dll")]

private?static?extern?IntPtr?GetWindowDC(IntPtr?hWnd);

[DllImport("user32.dll")]

private?static?extern?int?ReleaseDC(IntPtr?hWnd,?IntPtr?hDC);

private?const?int?WM_NCPAINT?=?0x0085;

private?const?int?WM_NCACTIVATE?=?0x0086;

private?const?int?WM_NCLBUTTONDOWN?=?0x00A1;

protected?override?void?WndProc(ref?Message?m)

{

????base.WndProc(ref?m);

????Rectangle?vRectangle?=?new?Rectangle((Width?-?75)?/?2,?3,?75,?25);

????switch?(m.Msg)

????{

????????case?WM_NCPAINT:

????????case?WM_NCACTIVATE:

????????????IntPtr?vHandle?=?GetWindowDC(m.HWnd);

????????????Graphics?vGraphics?=?Graphics.FromHdc(vHandle);

????????????vGraphics.FillRectangle(new?LinearGradientBrush(vRectangle,?

????????????????Color.Pink,?Color.Purple,?LinearGradientMode.BackwardDiagonal),

????????????????vRectangle);

????????????

????????????StringFormat?vStringFormat?=?new?StringFormat();

????????????vStringFormat.Alignment?=?StringAlignment.Center;

????????????vStringFormat.LineAlignment?=?StringAlignment.Center;

????????????vGraphics.DrawString("About",?Font,?Brushes.BlanchedAlmond,?

????????????????vRectangle,?vStringFormat);

????????????vGraphics.Dispose();

????????????ReleaseDC(m.HWnd,?vHandle);

????????????break;

????????case?WM_NCLBUTTONDOWN:

????????????Point?vPoint?=?new?Point((int)m.LParam);

????????????vPoint.Offset(-Left,?-Top);

????????????if?(vRectangle.Contains(vPoint))

????????????????MessageBox.Show(vPoint.ToString());

????????????break;

????}

}

Control.SuspendLayout;//在它和ResumeLayout之间的代码不会引起Parent?Control的重绘

Control.AddRange(new?Control[]{});//添加多个控件

Control.ResumeLayout;//?在它和SuspendLayout之间的代码不会引起Parent?Control的重绘

Button[]?buttons?=?new?Button[]?{};//大胆地设类数组吧~

Button.SetBounds(int,int,int);//设置Button的左、右、宽、高;

//应该尽可能地用Anchor、Dock,特殊情况下用Layout事件

Form.MdiParent=(Form);//设置MDI父窗口

//Active事件里this.Hide()是正道

Form.Show();

Form.Text=Mytext;//这两句的顺序不能

//static不能修饰临时变量,一般用来修饰类变量(不是类的对象实例变量!!!)

Form.MdiParent?=?this;

Form.TopLevel?=?true;

Form.IsMdiContainer=?true;

Form.?ActivateMdiChild

//sqlconnection连接字符串

@"Data?Source=?.SQLEXPRESS;AttachDBFilename=C:..*.MDF;Integrated?Security=True;User?Instance=True"))

//sqlconnection连接的基本步骤

using?System.Data.SqlClient;

Dataset?dataset?=?new?DataSet();

using?(SqlConnection?conn?=?new?SqlConnection(@"Data?Source=?.SQLEXPRESS;AttachDBFilename=C:SQL?Server?2000?Sample?DatabasesNORTHWND.MDF;Integrated?Security=True;User?Instance=True"))

{

conn.Open();

SqlDataAdapter?adapter?=?new?SqlDataAdapter(conn.CreateCommand());

????adapter.SelectCommand.CommandText?=?"select?*?from?customers";

adapter.Fill(dataset);

foreach?(DataRow?row?in?dataset.Tables[0].Rows)

{

string?item=row["ContactTitle"]+","+row["ContactName"];

????listBox1.Items.Add(item);

}

}

ListBox.Items.Add(new?string)//ListBox添加项

//创建DataSet中的记录

DataRow?row?=?DataSet.Tables[0].NewRow();

row["**"]?=***;

dataset.Tables[0].Rows.Add(row);

//更新DataSet

DataRow?row=DataSet.Table[0].Rows[index];

row[***]=***;

//删除DataSet中的记录

DataSet.Tables[0].Rows.Remove(DataSet.Table[0].Rows[index]);

//DataRow.Delete()和DataSet.Tables[0].Rows.Remove()不一样,后者是从DataSet中彻底删除

DataRow?row=DataSet.Table[0].Rows[index];

row[***]=***;

row.delete();

TYPE?varable=row[***,DataRowVersion.Original]

//?DataRow的完整访问方式和DataRow.RowState

Switch?(row.RowState)

{

case?DataRowState.Deleted:

????row["***",?DataRowVersion.Original];

????case?DataRowState.Added:

????row["["***"]

????case?DataRowState.Modified:

????row["***",?DataRowVersion.Original]

???????row["***",?DataRowVersion.Current]

case?DataRowVersion.Unchanged:

????row["***"]

}

//获取部分特定状态的数据集

DataTable?modifiedTable?=?DataSet.Tables[0].GetChanges(DataRowState.Added|?DataRowState.Modified|?DataRowState.Deleted);

//创建数据库查询连接适配器的几种方式

SqlDataAdapter??adapter?=?new?SqlDataAdapter("select?*?from?TABLENAME",?SqlConnection);?//最简单

SqlDataAdapter?adapter?=?new?SqlDataAdapter(SqlConnection.CreateCommand());

adapter.SelectCommand.CommandText?=?"select?*?from?TABLENAME?";

SqlDataAdapter??adapter?=?new?sqldat?SqlDataAdapter();

adapter.SelectCommand?=?new?SqlCommand("select?*?from?TABLENAME?",?SqlConnection);

//万能的数据集更新器SqlCommandBuilder

SqlDataAdapter?adapter?=?new?SqlDataAdapter("select?*?from?TABLENAME?",?SqlConnection);

new?SqlCommandBuilder(adapter);

try

{

adapter.Update(modifiedDataSet);

PoulateListBox();

}

catch?(System.Exception?ex)

{

}

//多表数据集建议分别创建适配器

SqlDataAdapter??adapter1?=?new?SqlDataAdapter("select?*?from?TABLENAME",?SqlConnection);?

adapter1.Fill(DataSet,TABLENAME1);

SqlDataAdapter??adapter2?=?new?SqlDataAdapter("select?*?from?TABLENAME",?SqlConnection);?

adapter2.Fill(DataSet,TABLENAME2);

//

//Make?some?changes?to?the?DataSet?.TABLENAME1?or?DataSet?.TABLENAME2

//

new?SqlCommandBuilder(adapter1);

adapter1.Update(DataSet,?TABLENAME1);

new?SqlCommandBuilder(adapter2);

adapter2.Update(DataSet,?TABLENAME2);

//创建DataSet自带约束

UniqueConstraint?constrint?=?new?UniqueConstraint(DataTable.Columns["***"]);//唯一性约束

DataTable.Constraints.Add(constrint);

//外键约束:ForeignKeyConstraint

//关系基于两张表的两个列上,添加于两张表共属的数据集,并且自动生成分别在两个表上生成UniqueConstraint?ForeignKeyConstraint

DataRelation?relation?=?new?DataRelation("CustomersOrders",?DataTable.Columns["***"],?DataTable.Columns["***"]);

dataset.Relations.Add(relation);

Form.Modal//判断显示方式是模式还是非模式,模式为true,非模式为false,只有在Load事件中和之后该属性才有实际意义,在构造期间默认为false

myForm.Control1.Text=Data?put?in?by?a?user;//这样不好,封装性不强不易维护更新,用下面的

pulbic?String?Control1Text

{

get{

return?Control1.Text;

}

Set{

Control1.Text;=value;

}

}

//

myForm.?Control1Text=?Data?put?in?by?a?user;

//DialogResult?res=ShowDialog()只是获取对话框结果的快捷方式,完整方式如下

void?someButton_Click(object?sender,EventArgs?e){

this.DialogResult=DialogResult.Retry;

this.close();

}

someForm=new?someForm();

someForm.showDialog();

DialogResult?ref=?someForm?.DialogResult;

if(ref=?DialogResult.Retry)

//

string?path?=Directory.GetCurrentDirectory();

System.IO.FileStream?aFile?=?new?System.IO.FileStream(path,?FileMode.Open);

StreamReader?sr?=?new?StreamReader(aFile,?System.Text.Encoding.Default);

/*

对于每个关联的?SqlConnection,一次只能打开一个?SqlDataReader

SqlConnection?与?SqlDataAdapter?和?SqlCommand?一起使用,可以在连接?Microsoft?SQL?Server?数据库时提高性能。

对于所有第三方?SQL?服务器产品以及其他支持?OLE?DB?的数据源,请使用?OleDbConnection。

SqlConnection?超出范围,则不会将其关闭因此,必须通过调用?Close?或?Dispose?显式关闭该连接。最好在using?块内部打开连接

连接自字符串关键字不区分大小写,并将忽略键/值对之间的空格。?不过,根据数据源的不同,值可能是区分大小写的。?任何包含分号、单引号或双引号的值必须用双引号引起来。

*/

System.Data.SqlClient.SqlConnectionStringBuilder?builder?=new?System.Data.SqlClient.SqlConnectionStringBuilder();

builder["Data?Source"]?=?"(local)";

builder["integrated?Security"]?=?true;

builder["Initial?Catalog"]?=?"AdventureWorks;NewValue=Bad";

//?使用System.Data.SqlClient.SqlConnectionStringBuilder不需要担心分号、单引号或双引号的转义问题

Console.WriteLine(builder.ConnectionString);

//打开数据库的某个古老方法

SqlConnection?mc=new?SqlConnection();

mc.ConnectionString=/**/;

mc.Open();

//有关SqlCommand,?SqlDataReader的基本使用

SqlCommand?scm=SqlConnection.CreateCommand();

scm.CommandText=select?*/**/;

SqlDataReader?sdr=scm.ExecuteReader();

sdr.Read();

//

sdr.close();

//以ToolStrip为例绘制简便背景

e.Graphics.FillRectangle(new?System.Drawing.Drawing2D.LinearGradientBrush(

new?System.Drawing.Point(0,?toolStrip1.Height),

new?System.Drawing.Point(0,?0),?

Color.FromKnownColor(KnownColor.ControlDark),?

Color.FromKnownColor(KnownColor.ControlLight)),?

toolStrip1.ClientRectangle);

//获取Color的几种方式

Color.FromKnownColor(KnownColor.ControlLight);

Color.FromArgb(int?r,int?g,int?b);

Color.FromArgb(int?a,int?r,int?b);//a表示透明度,0-255,0为全透明,255为不透明,

/*

如果安装时,改了实例名,也就是命名实例,那么客户端在连接时,要使用机器名加实例名来进行标识:计算机名实例名。

*/

//This?table?shows?all?connection?string?properties?for?the?ADO.NET?SqlConnection?object.?Most?of?the?properties?are?also?used?in?ADO.?All?properties?and?descriptions?is?from?msdn.?

    推荐文章
      热点阅读