今天2007年八月28日写的读取文本文件中的列名和数据进sql server数据库
来源:互联网 发布:网络智能家居公司 编辑:程序博客网 时间:2024/05/16 08:54
guid*name*level*color*diffculty*type*giver_dlg*direct_desc*unfinish_desc*receiver_dlg*rewardItems_and*rewardItems_or*rewardMoney*rewardExp*rewardRank*guildLevel*guildContribute*guildExp*dlg_npc_entry0*dlg_content0*dlg_npc_entry1*dlg_content1*dlg_npc_entry2*dlg_content2*dlg_npc_entry3*dlg_content3*dlg_npc_entry4*dlg_content4
1*青龙圣使*25*1*1*QT_Main* <tab />传闻邪恶的青龙及七星宿正觉醒于这片土地,他们受到了黑暗的蛊惑,正逐渐沦为邪恶的爪牙,在一切还可以控制前,我们必须将他们彻底消灭。 <n /> <tab />青龙玉是寄宿着神秘力量的玉牌,也是我一直致力于收集的宝物,如果你可以把它拿来给我,我可以给予你各种奖励,你拿来的数量越多,我可以提供给你越优异的奖励。 <n />*寻找并消灭青龙七星宿,将他们携带的青龙玉交给青龙使者* <tab />* <tab />很好,这是你的奖励。***0*0.0*0*0*0*0.0*0**0**0**0**0*
这个是源文件,第一行为列名的拼接,是用星号分割,第二,三为内容,但是首先我不知道这个txt文件的字符集编码,是unicode还是bcunicode,所以我借鉴了网上高手的一类
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace split
...{
class TxtFileEncoding
...{
public TxtFileEncoding()
...{
//
// TODO:在此处添加构造函数逻辑
//
}
/**//// <summary>
/// 取得一个文本文件的编码方式。如果无法在文件头部找到有效的前导符,Encoding.Default将被返回。
///
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns></returns>
public static Encoding GetEncoding(string fileName)
...{
return GetEncoding(fileName, Encoding.Default);
}
/**//// <summary>
/// 取得一个文本文件流的编码方式。
/// </summary>
/// <param name="stream">文本文件流。</param>
/// <returns></returns>
public static Encoding GetEncoding(FileStream stream)
...{
return GetEncoding(stream, Encoding.Default);
}
/**//// <summary>
/// 取得一个文本文件的编码方式。
/// </summary>
/// <param name="fileName">文件名。</param>
/// <param name="defaultEncoding">默认编码方式。当该方法无法从文件的头部取得有效的前导符时,将返回该编码方式。</param>
/// <returns></returns>
public static Encoding GetEncoding(string fileName, Encoding defaultEncoding)
...{
FileStream fs = new FileStream(fileName, FileMode.Open);
Encoding targetEncoding = GetEncoding(fs, defaultEncoding);
fs.Close();
return targetEncoding;
}
public static Encoding GetEncoding(FileStream stream, Encoding defaultEncoding)
...{
Encoding targetEncoding = defaultEncoding;
if (stream != null && stream.Length >= 2)
...{
//保存文件流的前4个字节
byte byte1 = 0;
byte byte2 = 0;
byte byte3 = 0;
byte byte4 = 0;
//保存当前Seek位置
long origPos = stream.Seek(0, SeekOrigin.Begin);
stream.Seek(0, SeekOrigin.Begin);
int nByte = stream.ReadByte();
byte1 = Convert.ToByte(nByte);
byte2 = Convert.ToByte(stream.ReadByte());
if (stream.Length >= 3)
...{
byte3 = Convert.ToByte(stream.ReadByte());
}
if (stream.Length >= 4)
...{
byte4 = Convert.ToByte(stream.ReadByte());
}
//根据文件流的前4个字节判断Encoding
//Unicode {0xFF,0xFE};
//BE-Unicode {oxFE,0xFF};
//UTF8={0xEF,0xBB,0xBF};
if (byte1 == 0xFE && byte2 == 0xFf)//UnicodeBe
...{
targetEncoding = Encoding.BigEndianUnicode;
}
if (byte1 == 0xFF && byte2 == 0xFE && byte3 != 0xFF)// Unicode
...{
targetEncoding = Encoding.Unicode;
}
if (byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF)//UTF8
...{
targetEncoding = Encoding.UTF8;
}
//恢复Seek位置
stream.Seek(origPos, SeekOrigin.Begin);
}
return targetEncoding;
}
}
}
之后是我的源文件,开始想的是以前用过的c#管道命令proess执行osql操作脚本,或者用sqldmo(此为sql server2000的对象模型),在sql server2005就变成了smo,后来公司一个高手指点,用了sqlhelper
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Collections;
//using STONE.HU.HELPER.UTIL;
namespace GMSERVER.Logic
...{
/**//**//**//// <summary>
/// Summary description for SqlSvrHelper.
/// </summary>
public class SqlHelper
...{
private static string auUserID = null;
private static string auPwdID = null;
private string url = null;
private string userID = null;
private string pwd = null;
//public static Log log = null;
public static string ConnectionString="";
public SqlHelper()
...{
}
public static string GetConnectionString(bool includedb,string host,string userName,string passwd,string dbName)
...{
if (includedb)
return String.Format("server={0};user id={1};password={2};database={3};" +
"pooling=false;charset=gb2312", host,userName,passwd,dbName);
return String.Format("server={0};user id={1};password={2};" +
"persist security info=true;", host, userName, passwd);
}
public void init(string url,string dbName,string userID,string pwd)
...{
string path= AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//log = new Log(path+"/log.txt", true, false, 0);
ConnectionString = "Data Source="+url+";Initial Catalog="+dbName+";User ID="+userID+";Password="+pwd+";Pooling=true;Min Pool Size=0;Max Pool Size=10;Connect Timeout=180";
}
public static int insertGMtoolsLog(int userID,string gameName,string serverIP,string sp_name,string RealAct)
...{
int result = -1;
SqlParameter[] paramCode;
try
...{
paramCode = new SqlParameter[6]...{
new SqlParameter("@Gm_UserID",SqlDbType.Int),
new SqlParameter("@Gm_GameName",SqlDbType.VarChar,30),
new SqlParameter("@Gm_ServerIP",SqlDbType.VarChar,30),
new SqlParameter("@Gm_SPname",SqlDbType.VarChar,30),
new SqlParameter("@Gm_RealAct",SqlDbType.VarChar,500),
new SqlParameter("@result",SqlDbType.Int)};
paramCode[0].Value=userID;
paramCode[1].Value=gameName;
paramCode[2].Value=serverIP;
paramCode[3].Value=sp_name;
paramCode[4].Value=RealAct;
paramCode[5].Direction = ParameterDirection.ReturnValue;
SqlHelper.ExecSPCommand("sp_InsertGMtoolslog",paramCode);
}
catch(SqlException ex)
...{
Console.WriteLine(ex.Message);
}
return result;
}
GetDataSet#region GetDataSet
/**//// <summary>
/// 得到一个查询的数据集
/// </summary>
/// <param name="commandText">输入查询语句</param>
/// <returns>查询的数据集</returns>
public static DataSet ExecuteDataset(string commandText)
...{
DataSet ds = null;
try
...{
if( ConnectionString == null || ConnectionString.Length == 0 ) throw new ArgumentNullException( "ConnectionString" );
using (SqlConnection connection = new SqlConnection(ConnectionString))
...{
connection.Open();
// Create the DataAdapter & DataSet
SqlCommand cmd = new SqlCommand(commandText,connection);
cmd.CommandType = CommandType.Text;
using( SqlDataAdapter da = new SqlDataAdapter(cmd) )
...{
ds = new DataSet();
da.Fill(ds);
connection.Close();
}
}
}
catch(SqlException ex)
...{
Console.WriteLine(ex.Message);
}
return ds;
}
#endregion
ExecCommand#region ExecCommand
/**//// <summary>
/// 返回查询满足条件数据的结果
/// </summary>
/// <param name="sqlcom">输入查询语句</param>
/// <returns>查询结果</returns>
public static int ExecCommand(SqlCommand sqlcom)
...{
SqlTransaction myTrans =null;
SqlConnection conn=new SqlConnection(ConnectionString);
sqlcom.Connection =conn;
conn.Open();
try
...{
myTrans = conn.BeginTransaction();
sqlcom.Transaction = myTrans;
int rtn=sqlcom.ExecuteNonQuery();
myTrans.Commit();
return rtn;
}
catch(Exception ex)
...{
Console.WriteLine(ex.Message);
myTrans.Rollback();
return -1;
}
finally
...{
conn.Close();
}
}
public static int ExecCommand(string sql)
...{
if (sql.EndsWith(",")) sql=sql.Substring(0,sql.Length-1);
SqlCommand sqlcom=new SqlCommand(sql);
return ExecCommand(sqlcom);
}
#endregion
ExecuteScalar#region ExecuteScalar
/**//// <summary>
/// 查询满足条件的数据集的对象
/// </summary>
/// <param name="sql">输入查询语句</param>
/// <returns>返回数据集的对象</returns>
public static object ExecuteScalar(string sql)
...{
SqlConnection conn=new SqlConnection(ConnectionString);
SqlCommand sqlcom=new SqlCommand(sql,conn);
conn.Open();
try
...{
object rtn=sqlcom.ExecuteScalar ();
return rtn;
}
catch(Exception ex)
...{
throw ex;
}
finally
...{
conn.Close();
}
}
#endregion
ExecSPCommand#region ExecSPCommand
/**//// <summary>
/// 执行存储过程
/// </summary>
/// <param name="strProc">存储过程名</param>
/// <param name="param">输入存储过程的参数集</param>
/// <param name="count">参数个数</param>
/// <returns>执行结果</returns>
public static int ExecSPCommand(string strProc,ArrayList param,int count)
...{
int returnValue =0;
SqlConnection conn=new SqlConnection(ConnectionString);
SqlCommand sqlcom=new SqlCommand(strProc,conn);
sqlcom.CommandType= CommandType.StoredProcedure ;
try
...{
conn.Open();
if(param!=null && count!=0)
...{
foreach(System.Data.IDataParameter paramer in param)
...{
sqlcom.Parameters.Add(paramer);
}
}
sqlcom.ExecuteNonQuery();
if(count!=0)
...{
if(!Convert.IsDBNull(sqlcom.Parameters["@result"].Value))
...{
returnValue=Convert.ToInt32(sqlcom.Parameters["@result"].Value);
}
}
sqlcom.Parameters.Clear();
conn.Close();
}
catch(SqlException ex)
...{
Console.WriteLine(ex.Message);
}
finally
...{
conn.Close();
}
return returnValue;
//string sourceIP=(string)param[1];
}
#endregion
ExecSPCommand#region ExecSPCommand
/**//// <summary>
/// 调用存储过程
/// </summary>
/// <param name="strProc">存储过程名</param>
/// <param name="paramers">输入参数集</param>
public static int ExecSPCommand(string strProc,System.Data.IDataParameter[] paramers)
...{
int returnValue = 0;
SqlConnection conn=new SqlConnection(ConnectionString);
SqlCommand sqlcom=new SqlCommand(strProc,conn);
sqlcom.CommandType= CommandType.StoredProcedure ;
sqlcom.CommandTimeout = 600;
foreach(System.Data.IDataParameter paramer in paramers)
...{
sqlcom.Parameters.Add(paramer);
}
conn.Open();
try
...{
sqlcom.ExecuteNonQuery();
if(!Convert.IsDBNull(sqlcom.Parameters["@result"].Value))
...{
returnValue=Convert.ToInt32(sqlcom.Parameters["@result"].Value);
}
}
catch(Exception ex)
...{
string s=ex.Message ;
}
finally
...{
conn.Close();
}
return returnValue;
}
#endregion
ExecSPDataSet#region ExecSPDataSet
/**//// <summary>
/// 得到存储过程返回数据集
/// </summary>
/// <param name="strProc">存储过程名</param>
/// <param name="paramers">输入参数集</param>
/// <returns>返回数据集</returns>
public static DataSet ExecSPDataSet(string strProc,System.Data.IDataParameter[] paramers)
...{
SqlConnection conn=new SqlConnection(ConnectionString);
SqlCommand sqlcom=new SqlCommand(strProc,conn);
sqlcom.CommandTimeout = 6000;
sqlcom.CommandType= CommandType.StoredProcedure ;
foreach(System.Data.IDataParameter paramer in paramers)
...{
sqlcom.Parameters.Add(paramer);
}
conn.Open();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=sqlcom;
DataSet ds=new DataSet();
da.Fill(ds);
conn.Close();
return ds;
}
#endregion ExecSPDataSet
ExecSPDataSet#region ExecSPDataSet
/**//// <summary>
/// 得到存储过程返回数据集
/// </summary>
/// <param name="strProc">存储过程名</param>
/// <param name="paramers">输入参数集</param>
/// <returns>返回数据集</returns>
public static DataSet ExecSPDataSet(string strProc)
...{
SqlConnection conn=new SqlConnection(ConnectionString);
SqlCommand sqlcom=new SqlCommand(strProc,conn);
sqlcom.CommandType= CommandType.StoredProcedure ;
conn.Open();
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=sqlcom;
DataSet ds=new DataSet();
da.Fill(ds);
conn.Close();
return ds;
}
#endregion DbType
DbType#region DbType
private static System.Data.DbType GetDbType(Type type)
...{
DbType result = DbType.String;
if( type.Equals(typeof(int)) || type.IsEnum)
result = DbType.Int32;
else if( type.Equals(typeof(long)))
result = DbType.Int32;
else if( type.Equals(typeof(double)) || type.Equals( typeof(Double)))
result = DbType.Decimal;
else if( type.Equals(typeof(DateTime)))
result = DbType.DateTime;
else if( type.Equals(typeof(bool)))
result = DbType.Boolean;
else if( type.Equals(typeof(string) ) )
result = DbType.String;
else if( type.Equals(typeof(decimal)))
result = DbType.Decimal;
else if( type.Equals(typeof(byte[])))
result = DbType.Binary;
else if( type.Equals(typeof(Guid)))
result = DbType.Guid;
return result;
}
#endregion UpdateTable
UpdateTable#region UpdateTable
public static void UpdateTable(DataTable dt,string TableName,string KeyName)
...{
foreach(DataRow dr in dt.Rows)
...{
updateRow(dr,TableName,KeyName);
}
}
#endregion InsertTable
InsertTable#region InsertTable
//用于主键是数据库表名+ID类型的
public static void InsertTable(DataTable dt)
...{
string TableName="["+dt.TableName+"]";
string KeyName=dt.TableName+"ID";
foreach(DataRow dr in dt.Rows)
...{
insertRow(dr,TableName,KeyName);
}
}
//用于主键是任意类型的
public static void InsertTable(DataTable dt,string KeyName)
...{
string TableName="["+dt.TableName+"]";
foreach(DataRow dr in dt.Rows)
...{
insertRow(dr,TableName,KeyName);
}
}
#endregion updateRow
updateRow#region updateRow
public static void updateRow(DataRow dr,string TableName,string KeyName)
...{
if (dr[KeyName]==DBNull.Value )
...{
throw new Exception(KeyName +"的值不能为空");
}
if (dr.RowState ==DataRowState.Deleted)
...{
deleteRow(dr,TableName,KeyName);
}
else if (dr.RowState ==DataRowState.Modified )
...{
midifyRow(dr,TableName,KeyName);
}
else if (dr.RowState ==DataRowState.Added )
...{
insertRow(dr,TableName,KeyName);
}
else if (dr.RowState ==DataRowState.Unchanged )
...{
midifyRow(dr,TableName,KeyName);
}
}
#endregion deleteRow
deleteRow#region deleteRow
private static void deleteRow(DataRow dr,string TableName,string KeyName)
...{
string sql="Delete {0} where {1} =@{1}";
DataTable dtb=dr.Table ;
sql=string.Format(sql,TableName,KeyName);
SqlCommand sqlcom=new SqlCommand(sql);
System.Data.IDataParameter iparam=new SqlParameter();
iparam.ParameterName = "@"+ KeyName;
iparam.DbType = GetDbType(dtb.Columns[KeyName].DataType);
iparam.Value = dr[KeyName];
sqlcom.Parameters .Add(iparam);
ExecCommand(sqlcom);
}
#endregion midifyRow
midifyRow#region midifyRow
private static void midifyRow(DataRow dr,string TableName,string KeyName)
...{
string UpdateSql = "Update {0} set {1} {2}";
string setSql="{0}= @{0}";
string wherSql=" Where {0}=@{0}";
StringBuilder setSb = new StringBuilder();
SqlCommand sqlcom=new SqlCommand();
DataTable dtb=dr.Table;
for (int k=0; k<dr.Table.Columns.Count; ++k)
...{
System.Data.IDataParameter iparam=new SqlParameter();
iparam.ParameterName = "@"+ dtb.Columns[k].ColumnName;
iparam.DbType = GetDbType(dtb.Columns[k].DataType);
iparam.Value = dr[k];
sqlcom.Parameters .Add(iparam);
if (dtb.Columns[k].ColumnName==KeyName)
...{
wherSql=string.Format(wherSql,KeyName);
}
else
...{
setSb.Append(string.Format(setSql,dtb.Columns[k].ColumnName));
setSb.Append(",");
}
}
string setStr=setSb.ToString();
setStr=setStr.Substring(0,setStr.Length -1); //trim ,
string sql = string.Format(UpdateSql, TableName, setStr,wherSql);
sqlcom.CommandText =sql;
try
...{
ExecCommand(sqlcom);
}
catch(Exception ex)
...{
throw ex;
}
}
#endregion insertRow
insertRow#region insertRow
public static void insertRow(DataRow dr,string TableName,string KeyName)
...{
string InsertSql = "Insert into {0}({1}) values({2})";
SqlCommand sqlcom=new SqlCommand();
DataTable dtb=dr.Table ;
StringBuilder insertValues = new StringBuilder();
StringBuilder cloumn_list = new StringBuilder();
for (int k=0; k<dr.Table.Columns.Count; ++k)
...{
//just for genentae,
if (dtb.Columns[k].ColumnName==KeyName) continue;
System.Data.IDataParameter iparam=new SqlParameter();
iparam.ParameterName = "@"+ dtb.Columns[k].ColumnName;
iparam.DbType = GetDbType(dtb.Columns[k].DataType);
iparam.Value = dr[k];
sqlcom.Parameters .Add(iparam);
cloumn_list.Append(dtb.Columns[k].ColumnName);
insertValues.Append("@"+dtb.Columns[k].ColumnName);
cloumn_list.Append(",");
insertValues.Append(",");
}
string cols=cloumn_list.ToString();
cols=cols.Substring(0,cols.Length -1);
string values=insertValues.ToString();
values=values.Substring(0,values.Length -1);
string sql = string.Format(InsertSql, TableName,cols ,values);
sqlcom.CommandText =sql;
try
...{
ExecCommand(sqlcom);
}
catch(Exception ex)
...{
throw ex;
}
}
#endregion
commitTrans#region commitTrans
public static int commitTrans(string strSQL,System.Data.IDataParameter[] paramers)
...{
SqlConnection myConnection = new SqlConnection(SqlHelper.ConnectionString);
myConnection.Open();
// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();
// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;
myCommand.CommandType = CommandType.Text;
foreach(System.Data.IDataParameter paramer in paramers)
...{
myCommand.Parameters.Add(paramer);
}
try
...{
myCommand.CommandText = strSQL;
myCommand.ExecuteNonQuery();
myTrans.Commit();
return 1;
}
catch(Exception e)
...{
try
...{
myTrans.Rollback();
return 0;
}
catch (SqlException ex)
...{
if (myTrans.Connection != null)
...{
Console.WriteLine("An exception of type " + ex.GetType() +
" was encountered while attempting to roll back the transaction.");
}
}
Console.WriteLine("An exception of type " + e.GetType() +
"was encountered while inserting the data.");
Console.WriteLine("Neither record was written to database.");
}
finally
...{
myConnection.Close();
}
return 1;
}
#endregion
commitTrans#region commitTrans
public static void commitTrans(string strSQL)
...{
SqlConnection myConnection = new SqlConnection(SqlHelper.ConnectionString);
myConnection.Open();
// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();
// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;
myCommand.CommandType = CommandType.Text;
try
...{
myCommand.CommandText = strSQL;
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
...{
try
...{
myTrans.Rollback();
}
catch (SqlException ex)
...{
if (myTrans.Connection != null)
...{
Console.WriteLine("An exception of type " + ex.GetType() +
" was encountered while attempting to roll back the transaction.");
}
}
Console.WriteLine("An exception of type " + e.GetType() +
"was encountered while inserting the data.");
Console.WriteLine("Neither record was written to database.");
}
finally
...{
myConnection.Close();
}
}
#endregion
transcation#region transcation
public static void transcation(string procName)
...{
SqlConnection myConnection = new SqlConnection("Data Source=192.168.9.124;Initial Catalog=Northwind;Integrated Security=SSPI;");
myConnection.Open();
// Start a local transaction.
SqlTransaction myTrans = myConnection.BeginTransaction();
// Enlist the command in the current transaction.
SqlCommand myCommand = myConnection.CreateCommand();
myCommand.Transaction = myTrans;
myCommand.CommandType = CommandType.StoredProcedure;
try
...{
myCommand.CommandText = procName;
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine("Both records are written to database.");
}
catch(Exception e)
...{
try
...{
myTrans.Rollback();
}
catch (SqlException ex)
...{
if (myTrans.Connection != null)
...{
Console.WriteLine("An exception of type " + ex.GetType() +
" was encountered while attempting to roll back the transaction.");
}
}
Console.WriteLine("An exception of type " + e.GetType() +
"was encountered while inserting the data.");
Console.WriteLine("Neither record was written to database.");
}
finally
...{
myConnection.Close();
}
}
#endregion
URL#region URL
public string URL
...{
get
...{
return this.url;
}
set
...{
this.url = value;
}
}
#endregion
USERID#region USERID
public string UserID
...{
get
...{
return this.userID;
}
set
...{
this.userID = value;
}
}
#endregion
PWD#region PWD
public string Pwd
...{
get
...{
return this.pwd;
}
set
...{
this.pwd = value;
}
}
#endregion
AUUser#region AUUser
public static string AuUser
...{
get
...{
return SqlHelper.auUserID;
}
set
...{
SqlHelper.auUserID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(value));
}
}
#endregion
AUPWD#region AUPWD
public static string AuPwd
...{
get
...{
return SqlHelper.auPwdID;
}
set
...{
SqlHelper.auPwdID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(value));
}
}
#endregion
}
}
这个是微软著名的数据库访问的中间件,在很多软件公司和学校里都接触过,petshop中也运用到了.
下面是我写的代码:
TextReader streamReader = new StreamReader("a.txt",fileEncoding);
//streamReader.ReadToEnd();
SqlHelper mysqlhelper = new SqlHelper();
mysqlhelper.init(".", "master", "sa", "sa");
string a;
string[] totalrow;
a=streamReader.ReadLine();
totalrow = a.Split(new Char[] ...{ '*' });
streamReader.Close();
streamReader = new StreamReader("a.txt", fileEncoding);
System.Data.DataTable bc = new DataTable();
int j=0;
DataTable table = new DataTable("temptable");
// Add all column objects to the table.
for (int i = 0; i < totalrow.Length; i++)
...{
DataColumn idColumn = new DataColumn();
idColumn.DataType = System.Type.GetType("System.String");
idColumn.ColumnName = totalrow[i];
table.Columns.Add(idColumn);
}
while ((a=streamReader.ReadLine()) != null)
...{
string[] split = a.Split(new Char[] ...{ '*' });
if(j==0)
...{
StringBuilder InsertTableSql = new StringBuilder();
InsertTableSql.Append("CREATE TABLE temptable(");
for (int i = 0; i < split.Length; i++)
...{
if (i == 0)
...{
InsertTableSql.Append(split[i]);
InsertTableSql.Append(" int PRIMARY KEY ");
}
else
...{
InsertTableSql.Append(split[i]);
InsertTableSql.Append(" varchar(500)");
}
if((i+1)!=split.Length)
InsertTableSql.Append(",");
}
InsertTableSql.Append(")");
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandText = InsertTableSql.ToString();
try
...{
SqlHelper.ExecCommand(sqlcom);
}
catch (Exception ex)
...{
throw ex;
MessageBox.Show(ex.Message);
}
}
else
...{
StringBuilder InsertTableSql = new StringBuilder();
InsertTableSql.Append("INSERT INTO temptable (");
for (int i = 0; i < totalrow.Length; i++)
...{
InsertTableSql.Append(totalrow[i]);
if ((i + 1) != totalrow.Length)
InsertTableSql.Append(",");
}
InsertTableSql.Append(") values('");
for (int i = 0; i < split.Length; i++)
...{
InsertTableSql.Append(split[i]);
if ((i + 1) != split.Length)
InsertTableSql.Append("','");
}
InsertTableSql.Append("')");
SqlCommand sqlcom = new SqlCommand();
sqlcom.CommandText = InsertTableSql.ToString();
try
...{
SqlHelper.ExecCommand(sqlcom);
}
catch (Exception ex)
...{
//throw ex;
MessageBox.Show(ex.Message);
}
//DataRow row;
//row=table.NewRow();
//for (int i = 0; i < split[i].Length; i++)
//{
// row[totalrow[i]] = split[i];
//}
//SqlHelper.insertRow(row, "temptable", "guid");
}
j++;
}
//const int ERROR_FILE_NOT_FOUND = 2;
//const int ERROR_ACCESS_DENIED = 5;
//Process myproc = new System.Diagnostics.Process();
//myproc.StartInfo.FileName = "osql a";
//myproc.StartInfo.RedirectStandardError = true;
//myproc.StartInfo.RedirectStandardError = true;
//myproc.StartInfo.CreateNoWindow = true;
//myproc.Start();
这段程序后来遇到的问题,这当中的字段控制,如果需要要更改createtable,还有文本内容不能带单引号,以后想办法改进这个问题,工作要努力了,这个小东西都搞了两天,工作效率底下,这阶段在看net安全编程,决定对客户端/服务器端加密,预计用rsa非对称加密算法,其中会用到写数字证书.
- 今天2007年八月28日写的读取文本文件中的列名和数据进sql server数据库
- 获取SQL SERVER数据库表名和列名的sql语句
- Sql Server数据库中的更新表名、列名、列值
- 数据库:读取指定表的所有列名&读取指定表某一列的所有数据
- 文本文件数据导入SQL Server数据库
- SQl查询数据库表名、表的列名(SQL Server)
- 找出SQL Server表名和对应的列名,列类型的语句
- SQL Server 列名不存在的问题
- 简单的SQL Server数据库数据读取与数据操作
- SQL SERVER 2000写存储过程出现列名无效的解决方法
- 获取sql server数据库中所有用户表名及在sql server中怎样用sql得到库中所有的表名以及表的结构(列名和数据类型)
- sql server 和 oracle查询列名以及列数
- MS SQL中怎么获取某个数据库的各个表名及表中的列名
- SQL Server 如何使用命令修改表名或表的列名 和 删除表
- C#读取文本文件和C# 写文本文件
- C#读取文本文件和C# 写文本文件
- C#读取文本文件和C# 写文本文件
- C#读取文本文件和C# 写文本文件
- Hibernate学习(八):检索方式
- HR--配置HR的员工照片存储和上载的步骤
- WinForm的2种活动页截屏打印方法
- 我会尽快回来的
- hibernate可复用组件的hbm文件路径配置
- 今天2007年八月28日写的读取文本文件中的列名和数据进sql server数据库
- SD--Message Control Configure
- J2ME优秀网站
- 2007.08.22双向链表(前插操作,删除操作)
- NUnit2.0详细使用方法
- 关于VBS调用MSWinsock控件(转)
- Unable to start runtime due to incomplete configration
- 在Eclipse中使用org.vssplugin_1.6.1(使用插件形式)
- C#入门例子