因为涉及到操作SQLServer数据库,以往没用过,现在来试一下。给大家分享一下.
[csharp] using System.Data.SqlClient;
需要引入这个命名空间.
以下是怎样连接数据库及创建表
[csharp] string connString = "server=192.168.1.85;database=桥梁监测;uid=sa;pwd=123456"; SqlConnection sqlConnection = new SqlConnection(connString); sqlConnection.Open(); string sql = "CREATE TABLE s4" + "(GPSIndex bigint primary key,aDatetime datetime,X float,Y float,Height float," + "dltaX float,dltaY float,dltaH float)"; SqlCommand cmd = new SqlCommand(sql, sqlConnection); cmd.ExecuteNonQuery();
server 对应的是数据库的ip地址,以后大家要连接SqlServer数据库,都可以照这样来。
[csharp] FileStream aFile = new FileStream("Station_8008_Ay.txt", FileMode.Open); StreamReader sr = new StreamReader(aFile); strLine = sr.ReadLine(); while (strLine != null) { string[] str = strLine.Split(' '); int i = 0; // double X1 = 0, Y1 = 0;//如果数据超长就得选用double float X1 = 0, Y1 = 0; float Height1=0; foreach (string strtest in str) { if (strtest.Trim() != "")//Trim()去除字符串头部和尾部的空格部分 { if (i > 1) { if (i == 2) { X1 = float.Parse(strtest); } if (i == 3) { Y1 = float.Parse(strtest); } if (i == 4) { Height1 = float.Parse(strtest); } } i++; } }
上面也是我今天写的代码,从这次动手中,学到了许多,希望多积累一下
string.Trim()函数很有用,可以去掉字符串头部和尾部的空格部分,在与数据库操作相关的地方,必须要求字符串很精细,一点马虎不得,所以这个函数就很有用。
[csharp] DateTime dt = System.DateTime.Now; Int64 milliseconds = (Int64)(System.DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds + System.DateTime.Now.Millisecond; string sql1 = "INSERT INTO s4(GPSIndex,aDatetime,X,Y,Height,dltaX,dltaY,dltaH)" + "VALUES(" + milliseconds.ToString() + "," + "'" + dt.ToString("yyyy-MM-dd hh:mm:ss") +"'" + "," + X1.ToString() +"," +Y1.ToString() +","+Height1.ToString() +",0,0,0)"; //MessageBox.Show(sql1); cmd = new SqlCommand(sql1, sqlConnection); cmd.ExecuteNonQuery(); strLine = sr.ReadLine(); Thread.Sleep(1000);
在插入时间的时候,千万直接这样-- dt.toStirng() 这样肯定报错,这样数据库无法将 字符串转化为datetime类型
我是在我旁边一位来公司几年的同事的帮助下才把这个问题解决的。
对了,另外字符类型的要加单引号,这个地方很容易出错
|