gpt4 book ai didi

C# SQL Connection string "can' t 查找表"

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:06 26 4
gpt4 key购买 nike

目前我正在开发一个生成文件的项目....()。一切似乎都运作良好。我可以连接到数据库,我的读写方法也可以,但是我找不到表。我有一个错误:

$exception {"Invalid object name 'T_SAL'."} System.Data.SqlClient.SqlException

我不知道问题是出在我的连接字符串上还是别的什么地方!请问有人可以帮助我吗?

我的方法代码:

//SQL连接方法**

     public static SqlConnection OpenSql(bool Authentification, string   SQL_LOGIN, string SQL_PASSWORD, string SQL_SERVER, string BASE_CONSOLE) 

{

try
{
SqlConnection conn = new SqlConnection();
String Securité;

if (Authentification)
{
Securité = "Integrated Security = true";
}
else
{Securité = "User Id =" + SQL_LOGIN + ";" + "Password =" + SQL_PASSWORD;}
conn.ConnectionString = "Data Source=" + SQL_SERVER + ";Initial Catalog=" + BASE_CONSOLE + ";" + Securité + ";";

conn.Open();
return conn;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());

return null;
}

//生成:

private void Gen_f_Click(object sender, EventArgs e)
{
SqlConnection conn = Methodes.OpenSql(Authentification.Checked, SQL_SERVER.Text, BASE_CONSOLE.Text, SQL_LOGIN.Text, SQL_PASSWORD.Text );
if (conn == null)
{
MessageBox.Show("Connexion impossible");
return;
}


try
{

//traitement du fichier des salaeiés
var lines = Methodes.lecture(fp_text.Text);
foreach (var ligne in lines)
{
string[] cols = ligne.Split(char.Parse(";"));
string Matricule = cols[0];

if (Matricule != "" && MatriculeExiste(conn, Matricule) == false)
{
string ligneSorties = "";

ligneSorties = ligneSorties + cols[0] + ";";


Methodes.Ecriture(ligneSorties, "fp_sorties.'Text'", true);
}

}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());

}
}




private bool MatriculeExiste(SqlConnection conn, string Matricule)

{

SqlCommand command = new SqlCommand("SELECT MatriculeSalarie FROM [T_SAL] WHERE MatriculeSalarie='" + Matricule + "'", conn);

using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
return true;
}
else
{
return false;
}
}
}

最佳答案

问题似乎与您传递给 OpenSql 方法的参数顺序有关:

 public static SqlConnection OpenSql(bool Authentification, string   SQL_LOGIN, string SQL_PASSWORD, string SQL_SERVER, string BASE_CONSOLE) 

你是这样调用它的:

    SqlConnection conn = Methodes.OpenSql(Authentification.Checked, SQL_SERVER.Text, BASE_CONSOLE.Text, SQL_LOGIN.Text, SQL_PASSWORD.Text );

参数的顺序肯定有一些不匹配,你的声明需要 SQL_Login, SQL_PASSWORD, SQL_SERVER, BASE_CONSOLE 而你传递的是 SQL_SERVER, BASE_CONSOLE, SQL_LOGIN, SQL_PASSWORD

因此,如果您使用 Windows 身份验证,它会起作用,因为您没有传递登录名和密码,而是传递密码而不是正确的数据库名称,因此您的用户最终进入 Master db,其中不包含所需的表格。

关于C# SQL Connection string "can' t 查找表",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50948998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com