我使用以下代码,但它在SqlDataReader
:
SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=Employee1;Persist Security Info=True;User ID=sa;Password='786'");
SqlCommand cmd = cn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "dbo.Date";
cmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(textBox1.Text));
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Employee ID", typeof(string)), new DataColumn("Employee Name", typeof(string)), new DataColumn("Status",typeof(char)) });
dt.Rows.Add();
try
{
cn.Open();
SqlDataReader res;
res = cmd.ExecuteReader();
MessageBox.Show("COmmand Executed Successfully");
int i = 0;
if (res.Read())
{
dt.Rows.Add(res[i].ToString(), res[++i].ToString(), res[++i].ToString());
}
res.Close();
cn.Close();
dataGridView1.DataSource = dt;
}
catch (Exception exp)
{
MessageBox.Show(exp.StackTrace);
}
例外是:
System.Data.Sq1Client.SqlInternalConnection.OnError(SqlException异常,Boolean breakConnection,Action' 1 wrapCloselnAction)中的System.Data.Sqlaient.Sq1Connection.OnError(SqlException异常,Boolean breakConnection,Action' wrapCloselnAction))在System.Data.Sq1Client.TdsParser.ThrowExceptionAndWarning(TdsParserStateObje克拉stateObj,布尔callerHasConnectionLock,布尔asyncClose)在System.Data.SqIClient.TdsParser.TryRun(runBehavior runBehavior,SqICommand cmdHandler,SqIDataReader数据流,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布尔&安培; System.ReData)System.Data上的System.Data.Sq1Client.Sq1.Si1.ReincuteReader(Sq1DataReader ds,RunBehavior runBehavior,String resetOptionsString)上的System.Data.Sq1Client.Sq1DataReader.TryConsumeMetaData()处于System.Data.Sq1Client.Sq1DataReader.get_MetaData()处。 .Sq1Client.Sq1Command.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boole异步,Int32超时,任务& System.Data.Sq1Client.Sq1Command.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String方法,TaskCompletionSourcel完成,Int32超时,任务和任务,布局asyncWrite)中的task,Boolean asyncWrite,SqIDataReader ds,Boolean d escri beParameterEncryptionRequest)在System.Data.Sq1Client.Sq1Command.ExecuteReader0 at的System.Data.Sq1Client.Sq1Command.ExecuteReader(CommandBehavior behavior,String方法)中的System.Data.Sq1Client.Sq1Command.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String方法) attendance.Form4.buttonS_Click(对象发件人,EventArgs e)在c:\ Users \ admin \ Desktop \ Attendance \ Attendance \ Form4.cs:第72行
答案 0 :(得分:0)
首先从密码中删除单引号。其次,在添加行时,使用res [i]时i是列的索引,因此无需递增此值。您还可以使用块来关闭连接并在此循环中处置对象。您也不需要dt.Rows.Add(),因为它用于添加行而不是列。以下是您的方法的重构:
[^A-Za-z\d\s]+