在访问我的数据库时,我让用户填写表单,并在目标页面中,在生成的MySQL查询中使用发布的值.
$query = mysql_query("SELECT pass FROM database WHERE user='$_POST[user]'");
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,MySQL不喜欢我在命令中使用$ _POST变量,它只在我定义(例如)时才有效$user = $_POST['user'];,然后将$ user直接放在SQL命令中.
另一方面,我可以在INSERT语句中使用$ _POST值,其中不需要特定的列名:
$query = mysql_query("INSERT INTO database VALUES ('foo', 'bar', '$_POST[user]'");
Run Code Online (Sandbox Code Playgroud)
如果我尝试定义属性的INSERT语句(例如user='foo'),则会出现相同的问题.
我在SQL查询中做错了什么导致命令在运行时出错,但是使用格式化INSERT命令的特定方法?
希望,这不是"运气不好,看起来你必须分配所有发布的价值".嘿.
请考虑以下示例:
public static DataTable GetDataTable()
{
using(DataTable dt = new DataTable())
{
// fill DataTable logic
return dt;
}
}
public void main()
{
DataTable dt = GetDataTable();
// contine using dt
}
Run Code Online (Sandbox Code Playgroud)
我是否应该dt可以使用main()或被DataTable处置GetDataTable()?
当我想基于删除整行时,我遇到了问题id_curse.这是我的代码,这是我得到的错误:
Oracle.DataAccess.dll中发生了未处理的"Oracle.DataAccess.Client.OracleException"类型异常.
附加信息:
外部组件引发的异常.
你能帮我解决这个问题吗?我认为SQL命令中的代码对此不利.
private void button3_Click(object sender, EventArgs e)
{
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection(provider);
Oracle.DataAccess.Client.OracleCommand cmd = new Oracle.DataAccess.Client.OracleCommand();
conn.Open();
cmd = new Oracle.DataAccess.Client.OracleCommand(" DELETE * from CURSE WHERE ID_CURSA = '" + textBox1.Text + "'", conn);
cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud) 我对专业编程相对缺乏经验,但我正在尝试编写一个与MS Access数据库接口的程序.基本上我正在收集表单中的信息,并尝试在每个条目的新行传递信息.我有一个开放的OleDbConnection,我的测试显示我能够看到哪个行将有新条目,但是当我点击提交按钮时,catch中没有显示错误,但数据库保持不变.我最初在我从click事件调用的方法中获得了代码,但我只是将代码放到事件处理程序中以验证问题不在于调用.
private void btnSubmit_Click(object sender, EventArgs e)
{
if (DBConnection.State.Equals(ConnectionState.Closed))
{
DBConnection.Open();
}
try
{
MessageBox.Show("Save Data at index: " + intRowPosition.ToString());
OleDbCommand OledbInsert = new OleDbCommand("Insert INTO RetentionTable (DateTime,Center,CSP,MemberID,ContractNumber,RetentionType,RetentionTrigger,MemberReason,ActionTaken,Other) VALUES('" + DateTime.Now.ToString() + "','" + GetCenter("") + "','" + GetName("") + "','" + GetMemberID("") + "','" + GetContractNumber("") + "','" + GetType("") + "','" + GetTrigger("") + "','" + GetReason("") + "','" + GetAction("") + "', + GetOther("")," DBConnection);
intRowPosition++;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show(ex.StackTrace.ToString());
} …Run Code Online (Sandbox Code Playgroud) 我有一个可视化的c#程序正在运行,但每当我尝试更新时,我都会收到连接错误.这是我的代码的样子:
private void Update()
{
try
{
String OneMachineScheduleOrder = "";
String series = "";
String oven = "";
String battery = "";
int x,y;
var sortedTextboxes = panel1.Controls
.OfType<TextBox>() // get all textboxes controls
.OrderBy(ctrl => ctrl.TabIndex); // order by TabIndex
foreach (TextBox txt in sortedTextboxes)
{
//Console.WriteLine(Convert.ToInt32(txt.TabIndex/2+1) + ": " + txt.Text);
OneMachineScheduleOrder = (txt.TabIndex / 2 + 1).ToString();
series = txt.Text.Substring(0, 1);
oven = txt.Text.Substring(1, 2);
battery = txt.Text.Substring(4).Trim();
if (Char.IsLetter(series[0]) && int.TryParse(oven, out y) && int.TryParse(battery, …Run Code Online (Sandbox Code Playgroud) 我搜索并搜索了一个答案,我找不到一个.我有一个选中的列表框,用户可以选择他们在计算机上遇到的问题.在选中的列表框中,您将看到诸如......慢,病毒,坏硬盘......以及根据他们选择的内容,我将告诉他们估计的维修费用.目前这是我构建查询的方式:
Dim mIssues As String = ""
For i = 0 To lstIssues.CheckedItemsCount - 1
If mIssues = "" Then
mIssues = String.Format("IssueName = '{0}'", lstIssues.CheckedItems(i))
Else
mIssues = String.Format("{0} OR IssueName = '{1}'", mIssues, lstIssues.CheckedItems(i))
End If
Next
Run Code Online (Sandbox Code Playgroud)
上面的代码将查看他们选择了多少问题.如果他们只选择一个问题,那么它将返回如下字符串:IssueName ='无论他们选择什么'.如果他们选择了多个问题,它将返回如下字符串:IssueName ='无论选择何种'或IssueName ='第二个选择'.因此,如果他们选择多个问题,我会在所有选项之间附加一个OR.我这样做是为了在我的查询中动态构建我的where子句.
这是我的查询:
Dim mySQL As String = "SELECT IssueID, IssueTypeID, IssueName, IssueDescription, " _
& "CustomerID, IndividualCost, GroupCost, Active, ChargeType " _
& "FROM (SELECT IssueID, IssueTypeID, IssueName, IssueDescription, " _
& "CustomerID, IndividualCost, GroupCost, Active, ChargeType " …Run Code Online (Sandbox Code Playgroud) 我试图在一个简单的访问数据库中搜索数据.代码是这样的
Call connect()
con.Open()
cmd = New OleDbCommand("Select * from PO_Record_Table where Customer=asd", con)
dr = cmd.ExecuteReader
While dr.Read
MsgBox(dr(1))
End While
con.Close()
Run Code Online (Sandbox Code Playgroud)
如果我按下搜索按钮,则错误:此行上没有给出一个或多个必需参数的值
dr = cmd.ExecuteReader
Run Code Online (Sandbox Code Playgroud)
记录"asd"在数据库客户字段中作为文本类型.为什么会出现此错误以及如何在没有错误的情况下完成此搜索?
我正在尝试从我的数据库中检索视频名称,其中视频的主题就像我要搜索的主题.
我尝试类似的查询,但它不是返回值.
能否提出建议?
我正在使用c#与sql server.
这是我的代码.
if (con.State == ConnectionState.Open)
con.Close();
con.Open();
string s1 = textBox1.Text;
cmd = new SqlCommand("select Video_Name,subject from Videos where subject like '%"+ s1 +" % ' " ,con);
//cmd = new SqlCommand("select Video_Name from Videos where subject='"+ s1+"' ", con);
SqlDataReader dr = cmd.ExecuteReader();
ArrayList a = new ArrayList();
label2.Visible = true;
label3.Visible = true;
//if (dr.Read())
{
while (dr.Read())
{
a.Add(dr[0].ToString());
}
foreach (string n in a)
{
comboBox1.Items.Add(n);
}
MessageBox.Show("Search succeded");
}
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio Express 2012中使用C#作为WPF应用程序.我按照此处的教程进行操作.我创建了一个testDb.mdf基于服务的本地数据库.我打开应用程序,输入文本,点击添加,数据添加到数据库.我只知道这一点,因为我将一个字段设置为主键并且是唯一的.如果我再次尝试添加相同的东西,我会收到错误消息,说它已经存在.
当我退出应用程序时,数据库中没有任何显示.我输入的数据消失了.为什么数据不是永久性的?
这是我用于单击按钮的代码:
private void Add_Click(object sender, RoutedEventArgs e)
{
SqlConnection cn = new SqlConnection(global::testdb.Properties.Settings.Default.testDBConnectionString);
try
{
string sql = "INSERT INTO Test (TestInsert) Values('" + txtName.Text + "')";
SqlCommand cmd = new SqlCommand(sql, cn);
cn.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Added new record", "Message", MessageBoxButton.OK);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Error", MessageBoxButton.OK);
}
finally
{
cn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
连接字符串:
<connectionStrings>
<add name="testdb.Properties.Settings.testDBConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\testDB.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) 我使用以下内容为变量设置日期值:
Dim someDate As DateTime = Date.Today.AddDays(1)
nextMonday = someDate
While nextMonday.DayOfWeek <> DayOfWeek.Monday
nextMonday = nextMonday.AddDays(1)
End While
Run Code Online (Sandbox Code Playgroud)
然后,我使用以下内容将日期插入SQL Server表:
Private Sub CButton1_ClickButtonArea(Sender As Object, e As MouseEventArgs) Handles CButton1.ClickButtonArea
Dim doenditstring As String = "INSERT INTO Parsversoeke (ma_datum,di_datum) " & _
"VALUES (" & _
"'" & nextMonday & "'," & _
"'" & nextTuesday & "')"
cnn.Open()
Dim aksie As New SqlClient.SqlCommand(doenditstring, cnn)
aksie.ExecuteNonQuery()
cnn.Close()
Run Code Online (Sandbox Code Playgroud)
它有效,除了我只能在两个日期做.之后我收到以下错误:
从字符串转换日期和/或时间时转换失败
有谁知道我为什么会收到错误?
c# ×6
sql ×3
vb.net ×3
ms-access ×2
oracle ×2
sql-server ×2
datatable ×1
idisposable ×1
mysql ×1
php ×1
post ×1
sqlcommand ×1
winforms ×1
wpf ×1