Tag: sql

使用12c客户端截断的存储过程OUTPUT VARCHAR2值

我正在使用oracle 11g 。 我的存储过程返回varchar2但它的值被oracle client截断。 以下是我的代码: if ((ds != null) && (ds.Tables.Count > 0)) { foreach (DataRow rw in ds.Tables[0].Rows) { OracleParameter param = new OracleParameter((rw[“argument_name”]).ToString(), GetOracleType(rw[“data_type”].ToString().ToUpper())); param.Direction = GetParameterDirection((rw[“in_out”]).ToString().ToUpper()); discoveryCommand.Parameters.Add(param); if (param.Direction == ParameterDirection.Output && param.OracleType == OracleType.VarChar) { param.Size = 4000; } } } 我将param.size增加到4000但仍然会截断值。 对此有什么解决方案吗? 在服务器上我有Oracle 12c 。 我需要在我的项目中不更新oracle客户端版本的情况下获得解决方案,因为某些原因不允许这样做。 以下是SP。 我修改它以返回硬编码值。 还是同样的问题。 […]

System.Data.SQLite不支持多个事务

所以我在System.Data.SQLite和使用多个事务时遇到了一个有趣的问题。 基本上我有以下代码失败: using (IDbConnection connection1 = new SQLiteConnection(“connectionstring”), connection2 = new SQLiteConnection(“connectionstring”)) { connection1.Open(); connection2.Open(); IDbTransaction transaction1 = connection1.BeginTransaction(); IDbTransaction transaction2 = connection2.BeginTransaction(); // Fails! using(IDbCommand command = new SQLiteCommand()) { command.Text = “CREATE TABLE artist(artistid int, artistname text);”; command.CommandType = CommandType.Text; command.Connection = connection1; command.ExecuteNonQuery(); } using (IDbCommand command = new SQLiteCommand()) { command.Text […]

可以将按位数学用于SQL中的一对多关系吗?

RDBMS中的正确规范化意味着表的扩散。 整数字段可以将正交数据存储为位 – 这可以用作替代附加表,而不会牺牲关系完整性吗?

什么是TransactionScope默认超时值?

当我按如下方式创建TransactionScope对象时: using (TransactionScope ts = new TransactionScope()) { // Do stuff… } 给定ts对象的默认事务超时是多少?

linq中的简单选择查询

假设我有一张学生桌,我想要显示ID为1的学生。 SELECT * FROM STUDENT ST WHERE ST.ID = 1 这就是我在Linq中实现这一点的方式。 StudentQuery = from r in oStudentDataTable.AsEnumerable() where (r.Field(“ID”) == 1) select r; oStudentDataTable = StudentQuery.CopyToDataTable(); 但是,如果我想向学生展示这些ID 1,2,3,4,5 .. SELECT * FROM STUDENT ST WHERE ST.ID IN (1,2,3,4,5) 我怎样才能在Linq中实现这一目标?

Linq to SQL使用group By,并按count计数

这是mysql查询: SELECT count(PVersion), PVersion FROM [Products].[dbo].[Active_Details] group by PVersion order by count(PVersion); 它的LINQ to SQL是什么。

从OleDbCommand中省略命名参数

我有一个简单的存储过程,需要6个参数。 假设它们是@a, @b, @c, @d, @e, @f它们都是可选的,默认值为null 。 我需要知道如何仅使用其中一些参数调用存储过程。 我知道一般步骤: 定义连接并打开它。 定义命令对象 将参数添加到命令对象。 执行命令。 现在,对于@a, @b, @c, @d, @e, @f每一个@a, @b, @c, @d, @e, @f我使用Parameters.Add()来添加该参数。 问题是:如果我想用@a和@f调用存储过程怎么办,我还需要Add()其他参数吗? 或者,如果我只添加2个参数,存储过程将如何知道我提供的参数?

将字符串列表传递给存储过程

使用,SQL Server 2012,我想创建一个存储过程,传入一个字符串列表并检查每个条目.Iv将列表添加到一个逗号分隔字符串’UserGroupsAllowedToViewMap’。 这是为一个条目工作,但我需要检查它的一些条目。 public DataTable GetMapsWithWorkspaceForUserGroups(int workspaceID, string UserGroupsAllowedToViewMap) { DataTable mapDets = new DataTable(); SqlCommand oComm = new SqlCommand(); SqlParameter spParam_WrkSpaceId = new SqlParameter(); SqlParameter spParam_ViewMap = new SqlParameter(); SqlParameter[] spParams = new SqlParameter[2]; SqlDataAdapter daUserMaps = new SqlDataAdapter(); try { spParam_WrkSpaceId.ParameterName = “@workspaceID”; spParam_WrkSpaceId.Value = workspaceID; spParams[0] = spParam_WrkSpaceId; spParam_ViewMap.ParameterName = “@ViewMap”; […]

在oracle中防止SQL注入

首先我尝试使用以下代码 strQuery = @”SELECT PASSWORD FROM IBK_USERS where upper(user_id) =upper(‘” + UserPrefix + “‘)”; try { ocommand = new OracleCommand(); if (db.GetConnection().State == ConnectionState.Open) { ocommand.CommandText = strQuery; ocommand.Connection = db.GetConnection(); odatareader = ocommand.ExecuteReader(); odatareader.Read(); 最后我转换了上面的查询,以防止像这样的SQL注入 strQuery = @”SELECT PASSWORD FROM IBK_USERS where upper(user_id) =upper(:UserPrefix)”; try { ocommand = new OracleCommand(); if (db.GetConnection().State == ConnectionState.Open) […]

用于wp7,pc和xbox的c#数据库

我目前正在开发一款c#游戏,我希望将它推向市场,适用于Windows 7,Windows phone芒果和Xbox 360.哪个SQL包可以在所有3个平台上移植,以获得我需要的数据库?