我需要一些关于如何更好地做到这一点的提示,我正在使用一个连接插入多个查询。
我知道这不是一个好的编程,特别是它很容易发生 SQL 注入,我还想提一下它不会在互联网上发布,只是在本地运行。
这是我到目前为止所拥有的..
public partial class Modify : System.Web.UI.Page
{
OleDbConnection connection;
OleDbCommand command;
public void OpenConnection2()
{
connection = new OleDbConnection("");
command = new OleDbCommand();
connection.Open();
}
protected void btnSave_Click1(object sender, EventArgs e)
{
if (AcctNumList.SelectedValue == "3")
{
string query2 = String.Format(@"INSERT INTO ACH (rptid, tableid, name, amount, stat, create_date) values
('{0}','{1}','{2}','{3}','{4}','{5}')",
id, newguid, Name1TxtBox.Text.Replace("'", "''"), Amt1TxtBox.Text.Replace("'", "''"), 3, DateTime.Now.ToString());
string query3 = String.Format(@"INSERT INTO ACH (rptid, tableid, name, amount, stat, create_date) values
('{0}','{1}','{2}','{3}','{4}','{5}')", …Run Code Online (Sandbox Code Playgroud) 假设我有以下 SQL 表定义:
create table test(
id number(5) primary key
);
Run Code Online (Sandbox Code Playgroud)
此外,我想使用 Groovy 的 SQL 支持在所述表上执行INSERT和语句。DELETE
给定以下代码,该代码执行一条INSERT语句:
Sql db = new Sql(some_dataSource)
String query = "insert into test (id) values (999)"
def result = db.execute(query)
Run Code Online (Sandbox Code Playgroud)
我可以知道,在这段代码中,插入了多少行test(在本例中为 1)?
result该变量对于确定这一点有用吗?
我尝试在此处和此处查看 Groovy 的 SQL 支持文档,但提供的示例似乎仅对SELECT语句进行行计数。
谢谢!
我试图从文本框中插入值,但收到错误消息,无法在控制参数中找到 controlid。TextBox 位于表单视图内,而表单视图位于列表视图内。SqlDataSource 位于 ListView 之外。
我的 InsertButton_Click 方法
protected void InsertButton_Click(object sender, EventArgs e)
{
var ctrl = (Control)sender;
var formview = (FormView)ctrl.NamingContainer;
formview.ChangeMode(FormViewMode.Insert);
SectionListView.DataSource = SectionDataSource;
SectionListView.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
插入项目模板
<InsertItemTemplate>
<tr style="">
<td>
<div style="font-size: .8em;">
<asp:FormView ID="SectionFormView" runat="server" DataKeyNames="SectionItemID" DataSourceID="SectionDataSource">
<ItemTemplate>
<asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" OnClick="InsertButton_Click" Font-Size="1.2em" />
<asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" Font-Size="1.2em" />
<asp:Label ID="SectionItemLabel" runat="server" Text="SectionItem" Font-Bold="true" Font-Size="1.2em" />
<asp:TextBox ID="SectionItemTextBox" runat="server" />
<asp:Label ID="SectionItemSubLabel" runat="server" Text="SectionItem Label" Font-Bold="true" Font-Size="1.2em" />
<asp:TextBox ID="SectionItemLabelTextBox" …Run Code Online (Sandbox Code Playgroud) 对于我必须执行的数据库修复,我需要为此查询结果的每个ID执行插入操作;
SELECT Id FROM role WHERE id != 99 AND Id NOT IN (SELECT RoleId FROM permissionaction WHERE PermissionId = 19);
Run Code Online (Sandbox Code Playgroud)
因此,它会产生一些必须与此查询一起添加的 ID。
INSERT INTO permissionaction (AccessLevel, PermissionId, ControllerActionId, Active, CreatedOn, ModifiedOn, CreatedById, ModifiedById, RoleId) VALUES (1, 19, 1, 1, Now(), Now(), 1, 1, *******ID HERE******);
Run Code Online (Sandbox Code Playgroud)
我知道可以使用 mysql 游标来完成,但这里不可能。有没有一种方法可以在一个查询中添加所有生成的 ID?
谢谢
我目前正在研究某种数据映射。假设我有以下三个表:
临时表
鲁尼德 | 文档编号 | 数量 英语 7 50 C 6 12
表格1
T1ID | 文档ID | 数量 1 5 10 2 6 20 3 6 50
表2
T2ID | 鲁尼德 | T1Id 1 乙 1 2 C 2 3D 3
在表中Table1,Table2列T1ID和T2ID是自动填充的标识列。我现在要做的是将值插入TemporaryTable到Table1并将值保存在列中RunID和TemporaryTable新生成的T1ID到Table2
结果表应如下所示:
表格1
T1ID | 文档ID | 数量 1 5 10 2 6 20 3 6 50 4 7 …
我有以下查询,其中出现错误为ORA-01840: input value not long enough for date format. 该C_DATE列是日期数据类型。
INSERT INTO CS_LOG(NAME, ID, C_DATE)
Select MAX(ML.NAME), ML.ID, TO_CHAR(CHK_DATE,'YYYYMM')
from D_ID ML,
CS_LOG MD
WHERE ML.NAME != MD.NAME
and ML.ID != MD.ID
and MD.C_DATE = LAST_DAY(to_date(sysdate,'YYYYMMDD'))
GROUP BY ML.ID, C_DATE;
Run Code Online (Sandbox Code Playgroud) 我在将数据插入 1 个包含 1 列的表时遇到问题
名称:用户 ID
列: ID
我尝试使用以下查询在此列中添加 1 行:
INSERT INTO user_id (id) VALUES ()
Run Code Online (Sandbox Code Playgroud)
问题是上面无效,我希望id取最后一个值id +1
这不是语法问题,因为此查询有效:
INSERT INTO user_id (id) VALUES (4)
Run Code Online (Sandbox Code Playgroud)
所以,我真的不知道如何解决这个问题。
我想使用以下查询在我的数据库中插入值:
INSERT INTO Users (pinConfirmed,Factor,DateUtc,LockoutEnabled,AccessCount,EmailConfirmed)
values ('false', 'false','1/1/2018' ,'false','0','false')
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:无法将 NULL 值插入列“Id”、表“用户”中;列不允许为空。插入失败。
但是,DB中已经存在Id不为空的数据。我检查了这两个请求,发现 Id 没有空值。
select * from Users where Id IS NULL;
select * from Users where Id = 'NULL';
Run Code Online (Sandbox Code Playgroud)
我不明白问题出在哪里。需要帮助请。
我正在尝试使用单个语句执行多个插入来实现此目的,我正在使用 Insert into select 语句。但是我面临着当两列在插入中具有相同的值时。我收到的错误消息是ORA-00918: column ambiguously defined.
询问
INSERT INTO sample (
HOST,
TOTAL_PING,
TOTAL_UNAVAILABLE_PING
)
SELECT * FROM (
SELECT 'FR3158-73-1',
82,
82
FROM DUAL
UNION ALL
SELECT 'FR3158-76-2',
80,
10
FROM DUAL
)
Run Code Online (Sandbox Code Playgroud)
如果我将一个值更改为有效的值,则第一个 select 语句中存在两个值是 82 和 82 的问题。即使列值相同,我也不知道如何进行这项工作。
- - 更新 - -
表定义
CREATE TABLE sample
(
ID NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1) PRIMARY KEY,
HOST VARCHAR2(15 BYTE),
TOTAL_PING INTEGER,
TOTAL_UNAVAILABLE_PING INTEGER,
ADDED_ON TIMESTAMP(6) DEFAULT systimestamp
);
Run Code Online (Sandbox Code Playgroud) 我正在InsertQuery从用户通过Scanner.
如何将iName,iType等填写到 my 中,iQuery以便将它们插入到我的数据库中?
public void InsertQuery (String iName, String iType, int health_Problem, Date date2, String aRemind, String docName, String docType, String docAdress)
{
final String url = "jdbc:mysql://localhost/ehealthdb?serverTimezone=UTC";
final String DBUSER = "root";
final String DBPSWD = "root";
try {
Connection con = DriverManager.getConnection(url,DBUSER,DBPSWD);
Statement stmt = con.createStatement();
String iQuery = "INSERT into appointment"
+ "(ID, PatientID, Insurance_Name, Insurance_Type, Health_Problem, Appointment_Date, Appointment_Remind, Doctor_Name,Doctor_Type,Doctor_Adress)"
+ "values ('1','1',,'Gesetzlich','5','15.01.2020','1 Week','Musterarzt','Hausarzt','Musterstraße')";
stmt.executeUpdate(iQuery);
} …Run Code Online (Sandbox Code Playgroud) sql-insert ×10
sql ×6
database ×2
oracle ×2
asp.net ×1
bulkinsert ×1
c# ×1
date ×1
groovy ×1
java ×1
jdbc ×1
mysql ×1
oledb ×1
ora-00918 ×1
oracle12c ×1
postgresql ×1
primary-key ×1
sql-delete ×1
sql-server ×1