你好可以有人請幫助我嗎?當我試圖從我的sql服務器數據庫表上的表中獲取字符串值它說我不能將字符串轉換爲int,但我不想將值轉換爲int。因爲表中的值是「Admin」和「General User」。C#無法將字符串轉換爲int錯誤,當我甚至沒有嘗試將其轉換爲int
由我使用的SQL Server 2014
,我使用捕捉到的字符串變量的方法是帽和我宣佈它作爲一個字符串。
當我寫代碼。
conn.Open();
string query_inicio = "select * from usuarios where USU_Usuario = '" + txtusuario.Text + "' AND USU_Contra ='" + txtcontra.Text + "'";
SqlCommand exe_query_inicio = new SqlCommand(query_inicio, conn);
SqlDataReader leer_exe;
try
{
leer_exe = exe_query_inicio.ExecuteReader();
if (leer_exe.Read())
{
cap = leer_exe.GetString("Admin");
MessageBox.Show("CONECTADO");
if (cap.Equals("Admin"))
{
Reporte_Detallado IB = new Reporte_Detallado();
IB.Show(this);
this.Hide();
}
}
else if (leer_exe.Read() == false)
{
MessageBox.Show("Inicio Fallido, Verifique Conexion");
}
它強調cap = leer_exe.GetString("Admin");
並說我不能將字符串轉換爲int。
我有相同的代碼使用MySQL數據庫,它的工作原理。現在我正在嘗試使用微軟sql服務器來做到這一點。所以我只改變了mysql版本,而不是mysqlconection和那些數據庫代碼行到sqlconnection和其他變化。
這是我的完整代碼。我希望有一個人可以幫助我。
順便說一下,我在c#編碼。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace ClimateReports
{
public partial class Login : Form
{
SqlConnection conn = ConexionBD.ObtenerConexion();
string cap;
public Login()
{
InitializeComponent();
}
private void btncancelar_Click(object sender, EventArgs e)
{
this.Dispose();
}
private void btniniciar_Click(object sender, EventArgs e)
{
conn.Open();
string query_inicio = "select * from usuarios where USU_Usuario = '" + txtusuario.Text + "' AND USU_Contra ='" + txtcontra.Text + "'";
SqlCommand exe_query_inicio = new SqlCommand(query_inicio, conn);
SqlDataReader leer_exe;
try
{
leer_exe = exe_query_inicio.ExecuteReader();
if (leer_exe.Read())
{
cap = leer_exe.GetSqlString("Admin");
MessageBox.Show("CONECTADO");
if (cap.Equals("Admin"))
{
Reporte_Detallado IB = new Reporte_Detallado();
IB.Show(this);
this.Hide();
}
}
else if (leer_exe.Read() == false)
{
MessageBox.Show("Inicio Fallido, Verifique Conexion");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
conn.Close();
}
}
}
ARGH!使用參數。切勿盲目地將用戶數據添加到查詢字符串中。你不知道[Bobby Tables](https://xkcd.com/327/)嗎? – itsme86
不是真的,但我會研究它。在大學裏,一個在墨西哥去的人,他們沒有教過很多東西。但我會查找它。和關於我知道的參數,但我有點懶惰lol – VesuvianMetal