C# 如果插入数据未检查,则检查数据未插入。
我做错了什么请帮忙 如果检查数据不插入如果插入数据不检查 如果有人帮忙,工作就会帮你解决这个问题C# 如果插入数据未检查,则检查数据未插入。,c#,C#,我做错了什么请帮忙 如果检查数据不插入如果插入数据不检查 如果有人帮忙,工作就会帮你解决这个问题 protected void Submit_Click(object sender, EventArgs e) { //string strCon = "Server=yourServer;Database=BuspassDb;User Id=Sa;Password=india;"; SqlConnection sqlConn
protected void Submit_Click(object sender, EventArgs e)
{
//string strCon = "Server=yourServer;Database=BuspassDb;User Id=Sa;Password=india;";
SqlConnection sqlConn = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
//cmd.CommandText = "CheckIfStringExists";
cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
//SqlParameter param = new SqlParameter();
//param.ParameterName = "@TextTmp";
//param.Value = txtString.Text;
//cmd.Parameters.Add(param);
try
{
sqlConn.Open();
SqlDataReader reader = cmd.ExecuteReader();
//reader = cmd.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
txtString.Text = (reader["Text"].ToString());
lblMessage.Text = txtString.Text + ".... is already exists";
}
else
lblMessage.Text = txtString.Text + "... is not exists";
txtString.Text = "";
sqlConn.Close();
//SqlConnection sqlCon = new SqlConnection(strCon);
//SqlCommand cmdd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "InsertConsole2";
cmd.Connection = sqlConn;
//cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
sqlConn.Open();
cmd.ExecuteScalar();
lblMessage.Text = txtString.Text + "....is Inserted";
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
It shows the following error on the page
我正在用C#写,那么它工作不正常。您需要指定
可以将其作为第二个参数传递给:
也可以直接设置属性:
new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
换行
cmd.Connection = sqlConn;
同样错误的参数名称也更改赋值参数的语句
SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp",sqlConn );
只调用executereader一次您需要在SqlCommand中指定SqlConnection。请参见此示例:
param.ParameterName = "@TextTmp";
查看更多信息。此代码有几个问题,包括但不限于:
SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp",sqlConn );
- 您没有分配
的SqlCommand
属性Connection
- 您使用了错误的参数名称(
而不是@StringTmp
)@TextTmp
- 您正在调用
两次ExecuteReader()
- 您没有正确处理对象。使用
块或自己调用
Dispose()
txtString.Text
分配给自身
编辑:代码示例
protected void Submit_Click(object sender, EventArgs e)
{
string strCon = "Server=yourServer;Database=yourDB;User Id=Username;Password=Password;";
SqlConnection sqlConn = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
try
{
sqlConn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
txtString.Text = reader["Text"].ToString();
lblMessage.Text = txtString.Text + ": String is already exists";
}
else
{
lblMessage.Text = txtString.Text + ": No data";
txtString.Text = "";
}
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
只是提醒一下。。。“它不起作用”作为一个标题并不合适。未来的程序员将如何知道您的问题可能适用于他们?我已经相应地编辑了标题,因为我认为这正是您真正想问的。可能的重复已经有一个与此命令相关联的打开的DataReader,必须先关闭它。这是说这个错误之后,我在这个声明中添加了sqlconn,而你还没有这样做。如果没有数据,你能告诉我如何插入数据库到同一个代码中吗?我不理解你的意思。您想让我创建一个插入查询吗?不,我没有从这个代码字符串中存储的插入过程,我需要插入那个
protected void Submit_Click(object sender, EventArgs e)
{
string strCon = "Server=yourServer;Database=yourDB;User Id=Username;Password=Password;";
SqlConnection sqlConn = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn);
cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
try
{
sqlConn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader = cmd.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
txtString.Text = reader["Text"].ToString();
lblMessage.Text = txtString.Text + ": String is already exists";
}
else
{
lblMessage.Text = txtString.Text + ": No data";
txtString.Text = "";
}
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
protected void Submit_Click(object sender, EventArgs e)
{
using (SqlConnection sqlConn = new SqlConnection(strCon))
using (SqlCommand cmd = new SqlCommand("select * from Console where Text = @TextTmp", sqlConn))
{
cmd.Parameters.AddWithValue("@TextTmp", txtString.Text);
try
{
sqlConn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
reader.Read();
txtString.Text = reader["Text"].ToString(); // Why?
lblMessage.Text = txtString.Text + "String is already exists";
}
else
{
lblMessage.Text = txtString.Text + "No data";
txtString.Text = "";
}
}
}
catch (Exception ex)
{
lblMessage.Text = ex.Message;
}
}
}