静压与风量的关系:这个C#问题怎么解决?

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 04:40:25
各位老师:
你好!
我有一个关于ADO.NET的问题想请教:
我想把表GetData中id=1的数全部取出来写入SetData中,采用如下方法:
using System;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication7
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
string sConnect;
sConnect=string.Format("server={0};DataBase={1};{2}","localhost","Mondel1","integrated security=SSPI");
SqlConnection con = new SqlConnection();
con.ConnectionString=sConnect;
SqlCommand command =new SqlCommand();
command.Connection=con;
SqlCommand command1 =new SqlCommand();
command1.Connection=con;
con.Open();
// SqlTransaction sqlTransaction = con.BeginTransaction();
// command.Transaction=sqlTransaction;
// command1.Transaction=sqlTransaction;
command.CommandText="ProGetData";
command.CommandType=CommandType.StoredProcedure;
command.Parameters.Add("@id",System.Data.SqlDbType.Int);
command.Parameters[0].Value=1;
SqlDataReader dbreader ;
dbreader=command.ExecuteReader();
while(dbreader.Read())
{
command1.CommandText="ProSetData";
command1.CommandType=CommandType.StoredProcedure;
command1.Parameters.Add("@number",System.Data.SqlDbType.Int);
command1.Parameters.Add("@id",System.Data.SqlDbType.Int);
command1.Parameters[0].Value=Convert.ToInt16(dbreader["number"]);
command1.Parameters[1].Value=1;

dbreader.Close();
command1.ExecuteNonQuery();

}
// sqlTransaction.Commit();
con.Close();

}
}
}

sql 语句(数据库为Mondel1)

CREATE TABLE [dbo].[GetData] (
[number] [int] NULL ,
[id] [int] NULL
)
GO

CREATE TABLE [dbo].[SetData] (
[number] [int] NULL ,
[id] [int] NULL
)
GO

Insert into GetData(number,id) values(1,1)
GO
Insert into GetData(number,id) values(2,1)
GO
Insert GetData(number,id) values(3,1)
GO
Insert GetData(number,id) values(4,2)
Go

CREATE PROCEDURE ProGetData
@id int
AS
select number from GetData where id = @id

RETURN

GO

但是如果加了dbreader.Close();这句,在次执行while时就会报异常,但如果没有这句command1.ExecuteNonQuery()就会报异常,不知应如何解决。
谢谢!

朋友我很想帮你,可是我不会C#,只会C++,我帮你问问我朋友吧...不好意思啦