如何为具有顺序主键的Oracle数据库编写插入查询,以便insert语句自动获取序列中的下一个数字?
INSERT INTO LD_USER_ROLE(USER_ROLE_ID,INS_USER,INS_DATE, USERNAME)
VALUES (100, 'sp22',to_date('2003/05/03 21:02:44','yyyy/mm/dd hh24:mi:ss'),'JOHN BARRY', )
Run Code Online (Sandbox Code Playgroud)
在上面的语句中,我已经为键'USER_ROLE_ID'硬编码了100的值,但是我想按照第一段中的说明改变它.
我当前正在将控制器类与数据访问层类(UserDAL 类)结合使用,以便对数据库进行更改。但是我知道我的代码很容易受到攻击,因为我没有使用参数化查询。
我从示例中看到了如何使用命令对象来使用查询。不过,我使用的是 OracleDataAdapter,它的行为似乎有点不同。它也与将被参数化的实际值属于不同的类,如以下代码部分所示:
控制器代码,其中三个字符串由用户输入的字段填充:
string usrName = mod.UserName;
string role = mod.Role;
string mod.actvInd;
string sql = "UPDATE LD_USER_ROLE" + " SET USERNAME='" + usrName + "', ROLE='" + role + "', ACTIVE_IND='" + actvInd + "' WHERE USER_ROLE_ID=" + id + "";
UserRoleDAL udl = new UserRoleDAL();
udl.ExecuteQuery(sql);
Run Code Online (Sandbox Code Playgroud)
用户DAL类:
public class UserRoleDAL
{
private OracleConnection conn;
public UserRoleDAL()
{
string oradb = ConfigurationManager.ConnectionStrings["db_dbConnectionString"].ConnectionString;
conn = new OracleConnection(oradb);
}
public void ExecuteQuery(string sql)
{
conn.Open();
OracleDataAdapter adapter = new …Run Code Online (Sandbox Code Playgroud) 我已经创建了一个简单的例子来提出这个问题.
以下代码编译并运行:
static void Main(string[] args)
{
string bigString, littleString;
littleString = null;
bigString = "word " + littleString + " word";
}
Run Code Online (Sandbox Code Playgroud)
此代码编译但抛出运行时NullReference异常.
static void Main(string[] args)
{
string bigString, littleString;
littleString = null;
bigString = "word " + littleString.ToString() + " word";
}
Run Code Online (Sandbox Code Playgroud)
为什么第一个代码不会抛出类似的异常?我本以为,为了将它连接到其他字符串,会隐含使用ToString(),此时它会遇到与第二段代码相同的基本问题.
我是Python的新手.试图让以下代码工作:
class Portfolio:
def __init__(self, balance={}):
self.__balance = balance.copy()
def initSym(self, sym):
if not sym in self.__balance:
self.__balance[sym] = 0
def invest(self, amt, fx):
initSym(fx)
self.__balance[fx] += amt
def divest(self, amt, fx):
initSym(fx)
self.__balance[fx] -= amt
def getBalance(self, fx):
initSym(fx)
return self.__balance[fx]
wallets = {'Paul':Portfolio({}),'Anne':Portfolio({'USD':200}),'John':Portfolio({'CHF':500,'GBP':11000})}
wallets['Anne'].getBalance('CHF')
Run Code Online (Sandbox Code Playgroud)
但是这会给出错误:
NameError: name 'initSym' is not defined
Run Code Online (Sandbox Code Playgroud) 我有一个文本框,用于获取工作角色的值.但是,这限制了数据库方面的一定数量的角色.因此,使用仅包含有效角色的下拉列表对我来说更有意义.我试图设置它但遇到了困难.
我在我的视图中放置了以下代码:
<p>
@Html.LabelFor(m => m.Role)
@Html.DropDownListFor(m=>m.Roles)
@Html.ValidationMessageFor(m => m.Role)
</p>
Run Code Online (Sandbox Code Playgroud)
这在我的模型中:
public List<string> Roles
{
get
{
return new {"Author","Underwriter" };
}
}
Run Code Online (Sandbox Code Playgroud)
这不会编译.我有什么想法我做错了吗?
我正在尝试学习一些PL/SQL,但我的第一个程序遇到问题:
declare
v_string_tx varchar2(256):='Hello World!';
begin
dbms_output.put_line(v_string_tx);
end;
Run Code Online (Sandbox Code Playgroud)
当我在SQL Developer中运行它时,我只收到一条消息"匿名块已完成".但是我没有得到'Hello World!' 正如所料.谁知道我错过了什么?
我尝试在此代码之前放置'set serveroutput'行,但是当我这样做并运行它时,没有任何反应(我甚至没有收到消息告诉我匿名块已经完成).
下面是我用来创建一个JSON对象的javascript代码,用于将值返回给控制器.vm引用由数字填充的其他地方的数组.我创建了一个数字数组的对象.
$("#saveUser").live("click", function() {
var username = $("#UserName").val();
var email = $("#Email").val();
var phoneNumber = $("#PhoneNumber").val();
var personCode = $("#PersonCode").val();
var managerId = $("#ManagerId").val();
var officeId = $("#OfficeId").val();
var address = $("#Address").val();
var activeInd = $("#ActiveInd").val();
var roles = [];
for(i=0;i<vm.RoleDdList().length ;i++) {
roles.push(vm.RoleDdList()[i].role());
}
var jsonObj =
{
username:username,
email:email,
phoneNumber:phoneNumber,
personCode:personCode,
managerId:managerId,
officeId:officeId,
address:address,
activeInd:activeInd,
roles:roles
};
$.ajax({
type:"POST",
async:true,
url:"Users/Save",
data:jsonObj,
dataType: "json",
success:function (data) {
dlg.dialog("close");
},
error:function (data)
{
alert("An error occurred when saving the …Run Code Online (Sandbox Code Playgroud) 我想在我的sql server db中存储一个balkan姓氏,但是当我尝试使用以下SQL更新记录时:
update User_Data
set name = 'Kramari?'
where User_PKID= 3047
Run Code Online (Sandbox Code Playgroud)
但是当我用以下方法查询数据库时:
select name from User_Data where User_PKID = 3047
Run Code Online (Sandbox Code Playgroud)
它返回:
Kramaric
Run Code Online (Sandbox Code Playgroud)
关于如何让它以原始形式存储它的任何想法.我需要它,因为我在我的服务器代码上对来自网站的数据进行字符串比较,如果'ć'不相同则失败.
我正在尝试根据属性提取列表的子集.该属性本身就是一个集合,我只对这个集合不为null的值感兴趣
我的代码是:
var subGroupCollection = groupContext.SubGroups.Where(sg => sg.Holds != null).ToList();
Run Code Online (Sandbox Code Playgroud)
我收到以下运行时错误:
不能比较类型的元素 'System.Collections.Generic.ICollection`1 [WW2.Hold,二战,版本= 6.0.5848.30559文化=中性公钥=空]'.仅支持基本类型,枚举类型和实体类型.
"Holds"是集合属性的名称(这是Hold对象的HashSet)
这有什么问题,是否有明显的解决方案?
我正在使用该Parse方法将a转换string为DateTime对象:
requestRecord.TerminationDate = DateTime.Parse(reader.ReadString("Termination_Date"));
Run Code Online (Sandbox Code Playgroud)
此代码在一台计算机上运行,但在另一台计算机上抛出异常.我认为问题可能与当地文化有关.查看两台计算机上的任务栏,抛出异常的任务栏具有日期,01/12/2014而另一台显示12/01/2014.
有没有什么方法可以重写上面的代码,以便它可以在两台机器上运行,而不管本地DateTime文化?