如题:
在我的程序中,需要用到如 “select 品名,数量,单价,单位 from 文件名”这样的语句,请问如何VARCHAR(20)类似这的字符放在语句中?现在关键我要指定的是: 数量与单价处为小数,是“select 品名,数量(Float),单价,单位 from 文件名”来写吗?谢谢大家。
在我的程序中,需要用到如 “select 品名,数量,单价,单位 from 文件名”这样的语句,请问如何VARCHAR(20)类似这的字符放在语句中?现在关键我要指定的是: 数量与单价处为小数,是“select 品名,数量(Float),单价,单位 from 文件名”来写吗?谢谢大家。
DECLARE @sql varchar(500)='SELECT TOP '+ cast(@Size as varchar(20))+' * FROM [tb_UserFriend]'
DECLARE @where varchar(300)
-----SELECT TOP {0} * FROM [tb_UserFriend] WHERE [UserId]=@UserId and [ProcessResult]&@ProcessResult<>0 and (ID>SELECT MAX(Id) FROM (SELECT TOP {1} Id FROM [tb_UserFriend] WHERE [UserId]=@UserId and [ProcessResult]&@ProcessResult<>0 ORDER BY Id) AS T)) ORDER BY Idif @UserId<>-1
set @where=' WHERE [UserId]='+cast(@UserId as varchar(20))
else
set @where=' WHERE 1=1'一个小例子
doubleu2005:您能帮我把上面的那段按您的意思,写一下吗?谢了。
public DataSet 物料数据表格(string 文件路径, string 文件名, DataGridView dataGv)
{
DataSet DataSet = new DataSet();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data ";
strConn += "Source= " + 文件路径;
strConn += ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\";";
OleDbConnection objConn = new OleDbConnection(strConn); /// try
// {
//// string strSql = "select * ";
//// string strSql = "select 品名,规格, cast(数量 as decimal(18,2)),单位,CONVERT(float,单价),编号,CONVERT(float,收总量),CONVERT(float,领总量),CONVERT(float,均价),结转,CONVERT(float,金额) ";
/// string strSql = "select 品名,规格,cast('库存' as decimal(15,2)),单位,cast('单价' as decimal(15,2)),编号,cast('收总量' as decimal(15,2)),cast('领总量' as decimal(15,2)),cast('均价' as decimal(15,2)),结转,cast('金额' as decimal(15,2))";
string strSql = "select 品名,规格, cast 库存 as decimal(18,2) ";
//// string strSql = "select 品名,规格,库存,单位,单价,编号,收总量,领总量,均价,结转,金额";
strSql += " from [" + 文件名 + "]";
OleDbDataAdapter OleDbDataAdapter = new OleDbDataAdapter(strSql, objConn);
OleDbDataAdapter.Fill(DataSet, "TableName");
DataSet.Tables["TableName"].Rows.Clear(); //清除原有的数据,避免重复
OleDbDataAdapter.Fill(DataSet, "TableName"); dataGv.DataSource = DataSet.Tables["TableName"];
/// }
/// catch
{ }//throw; } objConn.Close();
DataSet.Dispose(); return DataSet;
}这是我程序中的代码,运行时,会出现"IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。"
这个位置出现的那个错误提示。烦,高手们继续出招吧。
OleDbDataAdapter.Fill(DataSet, "TableName");
{
DataSet DataSet = new DataSet();
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data ";
strConn += "Source= " + 文件路径;
strConn += ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\";";
OleDbConnection objConn = new OleDbConnection(strConn); /// string strSql = "select * ";
/// string strSql = "select 品名,规格,库存,单位,单价,编号,收总量,领总量,均价,结转,金额"; //其中:库存,单价,收总量,领总量,均价,金额 全部转为小数
string strSql = "select 品名,规格, cast 库存 as decimal(18,2) ";
strSql += " from [" + 文件名 + "]";
OleDbDataAdapter OleDbDataAdapter = new OleDbDataAdapter(strSql, objConn);
OleDbDataAdapter.Fill(DataSet, "TableName");
dataGv.DataSource = DataSet.Tables["TableName"];
objConn.Close();
DataSet.Dispose(); return DataSet;
}
string strSql = "select 品名,规格, cast 库存 as decimal(18,2) "; 有错误提示
谢谢。
烦呀!!
看错误提示,好象是字段关键字被屏蔽了,不知怎么写了,
这个问题一直困了我两年。
你取出来之后再转格式吧,在datagridview中设置格式