用C#编程,要用到大量关于位置的数据,现在在vs2005连接了SQL数据库,创建2个表,怎样将txt文件数据导入

2025-05-15 07:35:50
推荐回答(1个)
回答1:

public void ReadTxt(int a,int b)
{
StreamReader objReader = null;
int Qty = 0;
this.textBox4.Text = "";
try
{
objReader = new StreamReader(this.textBox3.Text.ToString().Trim());
string sLine = "";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
DataSet lot = null;
string sqlstr = "";
string retrunMessage = "";
sLine = objReader.ReadLine();
if (sLine != null && !sLine.Equals(""))
{
if (sLine.Contains("-"))
{
if (b != 17)
{
showMessage("MAC格式为4C-AC-0A-8A-B4-7D,长度必须为17", true);
this.textBox2.Text = "";
this.textBox2.Focus();
return;
}
}
if (!sLine.Contains("-"))
{
if (b != 12)
{
showMessage("MAC格式为4CAC0A8AB47D,长度必须为12", true);
this.textBox2.Text = "";
this.textBox2.Focus();
return;
}
}
sqlstr = "EXEC [dbo].[TXN_MES_CSPrint] " +
"@I_PlugInCommand = N'" + PlugInCommand + "', " +
"@I_OrBitUserId = N'" + OrBitUserId + "', " +
"@I_ResourceId = N'" + ResourceId + "', " +
"@MAC = N'" + sLine.Substring(a, b).Replace("-","") + "'," +
"@CSPInfo = N'" + sLine + "'";
lot = GetDataSetWithSQLString(sqlstr);
this.Cursor = Cursors.Arrow;
if (lot.Tables[0].Rows.Count > 0)
{
int result = (int)lot.Tables[0].Rows[0]["I_ReturnValue"];
if (result == 0)
{
Qty++;
this.textBox4.Text = Qty.ToString();
retrunMessage = lot.Tables[0].Rows[0]["I_ReturnMessage"].ToString();
showMessage(retrunMessage, false);
}
else
{
retrunMessage = lot.Tables[0].Rows[0]["I_ReturnMessage"].ToString();
showMessage(retrunMessage, true);
}
}
else
{
retrunMessage = "文本记录中不存在测试数据!";
showMessage(retrunMessage, true);
}
}
else
{
showMessage("截取文本数据已完成或文本数据为空!", false);
}
}
objReader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{ objReader.Close(); }
}
--- 存储过程
-- =============================================
-- Author:
-- Create date:
-- Description:
-- =============================================
ALTER PROCEDURE [dbo].[TXN_MES_CSPrint]
@MAC nvarchar(50)='',
@CSPInfo nvarchar(500)='',
@CSPFormat nvarchar(500)=''
AS
BEGIN
--begin----插入测试数据--------------------
if @MAC is null or @MAC=''
begin
set @I_ReturnMessage='ServerMessage:当前截取数据中MAC不存在!'
select -1 as I_ReturnValue,@I_ReturnMessage as I_ReturnMessage
return -1
end
--if @CSPInfo is null or @CSPInfo=''
--begin
-- set @I_ReturnMessage='ServerMessage:当前截取数据为空!'
-- select -1 as I_ReturnValue,@I_ReturnMessage as I_ReturnMessage
-- return -1
--end
if exists(select MAC from CSPrint where MAC=@MAC)
begin
set @I_ReturnMessage='ServerMessage:当前截取数据已存在!'
select -1 as I_ReturnValue,@I_ReturnMessage as I_ReturnMessage
return -1
end
--申请主PKID
declare @CSPrintId char(12)
exec SysGetObjectPKid '','CSPrint',@CSPrintId output
--写入数据库表
insert into CSPrint (
CSPrintId,
MAC,
CSPInfo,
CSPFormat,
Createdate
)
Values (
@CSPrintId,
@MAC,
@CSPInfo,
@CSPFormat,
GETDATE()
)
--------end-----------------------------
set @I_ReturnMessage='ServerMessage:截取数据保存成功!'
select 0 as I_ReturnValue,@I_ReturnMessage as I_ReturnMessage
return 0
END