我不能把数据加到数据库。各位老大救救急!
为什么我怎么都加进数据呢?我在WEB页已经生成了一个表。六个字段。通过ADD(DT)方法调用添加数据。可怎么都加不进。
过程1:CREATE PROCEDURE dbo.insertSal
(
@ComName varchar(20),
@ComID varchar(20),
@Price smallmoney,
@Con int,
@momey smallmoney,
@buyerName varchar(20)
)
AS
SET NOCOUNT OFF;
INSERT INTO netSales(ComName, ComID, Price, Con, momey, buyerName) VALUES (@ComName, @ComID, @Price, @Con, @momey, @buyerName);
SELECT ComName, ComID, Price, Con, momey, buyerName FROM netSales
GO
过程2:CREATE PROCEDURE dbo.selectSal
AS
SET NOCOUNT ON;
SELECT ComName, ComID, Price, Con, momey, buyerName FROM netSales
GO
代码:
public AdsalData()
{
this.cnn=new SqlConnection();
this.cnn.ConnectionString="server=KONG;database=ksh;uid=sa;pwd=";
}
public void add(System.Data.DataTable DT)
{
this.cnn.Open();
this.cmd=new SqlCommand("insertSal",cnn);
this.cmd.CommandType=CommandType.StoredProcedure;
this.cmd1=new SqlCommand("selectSal");
this.cmd1.CommandType=CommandType.StoredProcedure;
this.cmd1.Connection=this.cnn;
this.sda=new SqlDataAdapter();
this.sda.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "netSales", new System.Data.Common.DataColumnMapping[] {….. 省略})});
this.sda.InsertCommand=this.cmd;
this.sda.SelectCommand=this.cmd1;
this.cmd1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ComName", System.Data.SqlDbType.VarChar, 20, "ComName"));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ComID", System.Data.SqlDbType.VarChar, 20, "ComID"));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Price", System.Data.SqlDbType.Money, 4, "Price"));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Con", System.Data.SqlDbType.Int, 4, "Con"));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@momey", System.Data.SqlDbType.Money, 4, "momey"));
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@buyerName", System.Data.SqlDbType.VarChar, 20, "buyerName"));
//
this.salDS=new DataSet();
this.sda.Fill(salDS,"netSales");
int i,j;
j=DT.Rows.Count;
for(i=0;i<j;i++)
{
this.cmd.Parameters["@ComName"].Value=DT.Rows[i][0];
this.cmd.Parameters["@ComID"].Value=DT.Rows[i][1];
this.cmd.Parameters["@Price"].Value=DT.Rows[i][2];
this.cmd.Parameters["@Con"].Value=DT.Rows[i][3];
this.cmd.Parameters["@momey"].Value=DT.Rows[i][4];
this.cmd.Parameters["@buyerName"].Value=DT.Rows[i][5];
this.sda.Update(salDS);
this.sda.Fill(salDS,"netSales");
}
this.cnn.Close();
问题点数:50、回复次数:7Top
1 楼kscode(坐到天亮)回复于 2004-07-01 12:16:19 得分 0
TOP 救急~~~~~~~~~~~~~~~Top
2 楼edobnet(oоОoоО)回复于 2004-07-01 12:30:48 得分 0
有没有出错提示,没有的话,
先调存储过程,后调程序,
通过设断点看参数的传递情况!Top
3 楼CMIC(大象)回复于 2004-07-01 12:32:22 得分 50
this.cmd.Parameters.Add(new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((System.Byte)(0)), ((System.Byte)(0)), "", System.Data.DataRowVersion.Current, null));
---------------------------
存储过程中并没有@RETURN_VALUE参数。Top
4 楼kscode(坐到天亮)回复于 2004-07-01 12:44:25 得分 0
to:CMIC
我在数据库对应的表中设了一个ID是自增的INT型,就是那@RETURN-VALUETop
5 楼CMIC(大象)回复于 2004-07-01 12:52:45 得分 0
你的代码是在代用一个存储过程:
CREATE PROCEDURE dbo.insertSal
(
@ComName varchar(20),
@ComID varchar(20),
@Price smallmoney,
@Con int,
@momey smallmoney,
@buyerName varchar(20)
)
好好看看这里并没有声明@RETURN_VALUE参数,这和你的表有什么关系?Top
6 楼kscode(坐到天亮)回复于 2004-07-01 20:36:38 得分 0
我声明了@RETURN—VALUE也添加不了Top
7 楼tangyy(tang)回复于 2004-07-01 20:54:20 得分 0
upTop




