原文:c#数据库操作大全
1.提取单条记录
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
SqlCommand cmd = new SqlCommand("Select Count(*) From jobs",cn);
cn.Open();
%%2=cmd.ExecuteScalar(); //Message.InnerHtml
}
2.单值比较
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
SqlCommand cmd = new SqlCommand("Select Count(*) From jobs",cn);
cn.Open();
%%2=cmd.ExecuteScalar(); //Message.InnerHtml
if(%%2==%%3)
{
%%4
}
}
3.显示表格
//using System.Data;
//using System.Data.SqlClient;
DataSet ds=null;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
cn.Open();
cmd=new SqlDataAdapter("Select * From Author",cn);
ds=new DataSet();
cmd.Fill(ds,%%2); //"作者"
MyDataGrid.DataSource=ds.Tables(%%2).DefaultView; //"作者"
MyDataGrid.DataBind();
}
4.操作表格
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
cn.Open();
cmd=new SqlDataAdapter("Select * From Author",cn);
ds=new DataSet();
cmd.Fill(ds,%%2); //"作者"
MyDataGrid.DataSource=ds.Tables(%%2).DefaultView; //"作者"
MyDataGrid.DataBind();
}
5.数值范围查询
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
cn.Open();
int min = Int32.Parse(jcb1.selectedItem);
int max = Int32.Parse(jcb2.selectedItem);
cmd=new SqlDataAdapter("Select count(*) as pro_count From ProPrice where price between "
+ min + " and " + max,cn);
ds=new DataSet();
cmd.Fill(ds,%%2); //"作者"
MyDataGrid.DataSource=ds.Tables(%%2).DefaultView; //"作者"
MyDataGrid.DataBind();
}
6.关闭时断开连接
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
}
7.执行命令
//using System.Data;
//using System.Data.SqlClient;
using (SqlConnection cn = new SqlConnection(%%1))
//ConfigurationManager.ConnectionStrings["db2ConnectionString"].ConnectionString
//Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
{
SqlCommand cmd = new SqlCommand("insert userRegister_t values('"
+ TextBox1.Text + "','" + TextBox2.Text + "')",cn);
cn.Open();
cmd.ExecuteNonQuery();
}
7.Oracle8/8i/9i数据库(thin模式)
//using System.Data;
Oracle Set Your custom connection strings values
ODBC
New version
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
Old version
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
OLE DB, OleDbConnection (.NET)
Standard security
This connection string uses a provider from Microsoft.
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
Standard Security
This connection string uses a provider from Oracle.
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
Trusted Connection
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
OracleConnection (.NET)
Standard
Data Source=MyOracleDB;Integrated Security=yes;
This one works only with Oracle 8i release 3 or later
Specifying username and password
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
This one works only with Oracle 8i release 3 or later
Missing the System.Data.OracleClient namespace? Download .NET Managed Provider for Oracle >>
Great article! "Features of Oracle Data Provider for .NET" by Rama Mohan G. at C# Corner >>
Omiting tnsnames.ora
This is another type of Oracle connection string that doesn't rely on you to have a DSN for the connection. You create a connection string based on the format used in the tnsnames.ora file without the need to actually have one of these files on the client pc.
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Core Labs OraDirect (.NET)
Standard
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
Read more at Core Lab >>
And at the product page >>
Data Shape
MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
8.DB2数据库
string connString ="Server=myAddress:myPortNumber;Database=myDataBase;UID=myUsername;PWD=myPassword;";
9.SQL Server7.0/2000数据库
string connString ="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
/*
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
*/
SQL Server2005数据库
string connString ="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword";
/*
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
*/
10.Sybase数据库
string connString ="Data Source='myASEserver';Port=5000;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"; //Sybase Adaptive Server Enterprise
string connString ="Data Source=//myserver/myvolume/mypat/mydd.add;User ID=myUsername;Password=myPassword;ServerType=REMOTE;"; //Sybase Advantage Database Server
11.Informix数据库
string connString ="Database=myDataBase;Host=192.168.10.10;Server=db_engine_tcp;Service=1492; Protocol=onsoctcp;UID=myUsername;Password=myPassword;";
12.MySQL数据库
string connString ="Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;";
13.PostgreSQL数据库
string connString ="User ID=root;Password=myPassword;Host=localhost;Port=5432;Database=myDataBase; Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;";
14.连接access数据库
string connString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/mydatabase.mdb;User Id=admin;Password=;";
15.连接MySql数据库
string connString ="Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;";
16.程序计时
DateTime runTime = Convert.ToDateTime(System.Configuration.ConfigurationSettings.AppSettings["TimerRunAt"]);
//运行时间
TimeSpan runTime = new TimeSpan(runTime.Ticks);
//现在时间
TimeSpan timeNow = new TimeSpan(DateTime.Now.Ticks);
//时间间隔
TimeSpan ts = runTime.Subtract(timeNow);
//如果运行时间与当前时间的差大于0,则任务执行时间为当日
if(ts.TotalMilliseconds > 0)
{
return ts.TotalMilliseconds;
}
//如果运行时间与当前时间的差小于0,则任务执行时间为次日
Else
{
//差值的绝对值应加1天
return ts.Duration().Add(new TimeSpan(1,0,0,0,0)).TotalMilliseconds;
}
17.延时
//using System.Threading;
Thread.Sleep(Int32.Parse(%%1));
18.连接Excel文件
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excel文件名(绝对路径) +";Extended Properties=Excel 8.0;";
19.GDI+时钟
/*
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
*/
private Point mickeyMouse = new Point(0, 0);
private void Form1_Paint(object sender, PaintEventArgs e)
{
DrawClock(e.Graphics);
timer1.Start();
}
private void DrawClock(Graphics g)
{
///centre(120, 130);
Rectangle outRect = new Rectangle(0, 0, 240, 260);
Rectangle midRect = new Rectangle(7, 7, 226, 246);
Rectangle inRect = new Rectangle(10, 10, 220, 240);
LinearGradientBrush outlBlueBrush = new LinearGradientBrush(outRect, Color.FromArgb(0, 0, 100),
Color.FromArgb(0, 0, 255), LinearGradientMode.BackwardDiagonal);
LinearGradientBrush midlBlueBrush = new LinearGradientBrush(midRect, Color.FromArgb(0, 0, 255),
Color.FromArgb(0, 0, 100), LinearGradientMode.BackwardDiagonal);
LinearGradientBrush inlBlueBrush = new LinearGradientBrush(inRect, Color.FromArgb(0, 0, 100),
Color.FromArgb(0, 0, 255), LinearGradientMode.BackwardDiagonal);
g.FillEllipse(outlBlueBrush, outRect);
g.FillEllipse(midlBlueBrush, midRect);
g.FillEllipse(inlBlueBrush, inRect);
outlBlueBrush.Dispose();
midlBlueBrush.Dispose();
inlBlueBrush.Dispose();
//
Font myFont = new Font("Arial", 20, FontStyle.Bold);
SolidBrush whiteBrush = new SolidBrush(Color.White);
g.DrawString("12", myFont, whiteBrush, 100, 10);
g.DrawString("6", myFont, whiteBrush, 110, 223);
g.DrawString("3", myFont, whiteBrush, 210, 120);
g.DrawString("9", myFont, whiteBrush, 10, 120);
g.DrawString("1", myFont, whiteBrush, 160, 26);
g.DrawString("2", myFont, whiteBrush, 194, 64);
g.DrawString("5", myFont, whiteBrush, 156, 210);
g.DrawString("4", myFont, whiteBrush, 192, 174);
g.DrawString("11", myFont, whiteBrush, 55, 28);
g.DrawString("10", myFont, whiteBrush, 22, 66);
g.DrawString("7", myFont, whiteBrush, 64, 210);
g.DrawString("8", myFont, whiteBrush, 28, 174);
myFont.Dispose();
whiteBrush.Dispose();
//DateTime;
g.TranslateTransform(120, 130, MatrixOrder.Append);
//
Pen hourPen = new Pen(Color.White, 6);
hourPen.SetLineCap(LineCap.RoundAnchor, LineCap.ArrowAnchor, DashCap.Flat);
Pen minutePen = new Pen(Color.White, 4);
minutePen.SetLineCap(LineCap.RoundAnchor, LineCap.ArrowAnchor, DashCap.Flat);
Pen secondPen = new Pen(Color.Red, 2);
int sec = DateTime.Now.Second;
int min = DateTime.Now.Minute;
int hour = DateTime.Now.Hour;
double secondAngle = 2.0 * Math.PI * sec / 60.0;
double minuteAngle = 2.0 * Math.PI * (min + sec / 60.0) / 60.0;
double hourAngle = 2.0 * Math.PI * (hour + min / 60.0) / 12.0;
Point centre = new Point(0, 0);
Point hourHand = new Point((int)(40 * Math.Sin(hourAngle)),
(int)(-40 * Math.Cos(hourAngle)));
g.DrawLine(hourPen, centre, hourHand);
Point minHand = new Point((int)(80 * Math.Sin(minuteAngle)),
(int)(-80 * Math.Cos(minuteAngle)));
g.DrawLine(minutePen, centre, minHand);
Point secHand = new Point((int)(80 * Math.Sin(secondAngle)),
(int)(-80 * Math.Cos(secondAngle)));
g.DrawLine(secondPen, centre, secHand);
hourPen.Dispose();
minutePen.Dispose();
secondPen.Dispose();
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Invalidate();
}
private void hideToolStripMenuItem_Click(object sender, EventArgs e)
{
if (contextMenuStrip1.Items[0].ToString() == "Hide")
{
this.Hide();
contextMenuStrip1.Items[0].Text = "Show";
return;
}
if (contextMenuStrip1.Items[0].ToString() == "Show")
{
this.Show();
contextMenuStrip1.Items[0].Text = "Hide";
return;
}
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
mickeyMouse = new Point(-e.X, -e.Y);
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
Point mousePos = Control.MousePosition;
mousePos.Offset(mickeyMouse.X, mickeyMouse.Y);
Location = mousePos;
}
}
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
{
if (contextMenuStrip1.Items[0].ToString() == "Show")
{
this.Show();
contextMenuStrip1.Items[0].Text = "Hide";
return;
}
}
20.数据库存入二进制字段数据
/*
using System.Data;
using System.IO;
using System.Data.SqlClient;
*/
private string File="";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
pictureBox1.Image=new Bitmap(openFileDialog1.FileName);
FileName=openFileDialog1.FileName;
}
try{
DataSet ds=new DataSet();
sqlDataAdapter1.Fill(ds,%%1); //"db"
DataTable MyTable=ds.Tables[0];
DataRow MyRow=MyTable.Rows.Count+1;
MyRow[%%2]=MyTable.NewRow(); //"id"
MyRow[%%3]=%%5; //"FileName"
MyRow[%%4]=%%6; //"Description"
FileStream fs=new FileStream(FileNmae,FileMode.OpenOrCreate,FileAccess.Read);
byte[] MyData=new byte[fs.Length];
fs.Read(MyData,0,(int)fs.Length);
MyRow[%%7[=MyData; //"FileData"
MyTable.Rows.Add(MyRow);
sqlDataAdapter1.Update(ds,%%1);
ds.AcceptChanges();
//存储成功
}
catch(Exception ex)
{
//ex.Message.ToString()
}
21.数据库取出二进制字段数据
/*
using System.Data;
using System.IO;
*/
private int index=1;
private System.Windows.Forms.BindingManagerBase_Bind();
private DataSet ds=new DataSet();
sqlDataAdapter1.Fill(ds,%%1); //"db"
_Bind=BindingContext[ds,%%1];
textBox1.DataBindings.Add("Text",ds,"%%1.%%3"); //filename
textBox2.DataBindings.Add("Text",ds,"%%1.%%4"); //description
if(_Bind.Count!=0)
{
try{
if(pictureBox1.Image!=null)
pictureBox1.Image.Dispose();
pictureBox1.Image=null;
sqlDataAdapter1.SelectCommand.CommandText="Select * From %%1 Where %%2="+Convert.ToString(index); //id
DataSet dataSet=new DataSet();
sqlDataAdapter1.Fill(dataSet,%%1);
byte[] MyData=(byte[])dataSet.Tables[0].Rows[0][%%5]; //"FileData"
Int32 size=MyData.GetUpperBound(0);
FileStream fs=new FileStream(%%6,FileMode.OpenOrCreate,FileAccess.Wrtie); //"temp.bmp"
fs.Write(MyData,0,size+1);
fs.Close();
pictureBox1.Image=new Bitmap(%%6);
}
catch(Exception ex)
{
//ex.Message.ToString()
}
}